Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Mithrandir
Mensajes: 27 Registrado: 01 Jun 2009, 02:41
Mensaje
por Mithrandir » 11 Jun 2009, 21:55
Buenas estaba tratando de hacer algo aparentemente simple: Abrir un archivo en un block de notas copiar su contenido y cerrarlo. Sin embargo probé de diferentes formas como verán en los códigos que adjunto y lo único que hace el script es abrir el block de notas o en el caso en que pongo la ruta del archivo, no hace nada. Gracias por la ayuda!!
Código: Seleccionar todo
Run("C:\Documents and Settings\Pablo\Mis documentos\TEST.txt")
Send("^!e")
Sleep(1000)
Send("^!c")
Sleep(1000)
WinClose("TEST")
Código: Seleccionar todo
Run("notepad.exe")
WinWaitActive("Sin título - Bloc de notas")
Send("^!a")
WinWaitActive("Abrir")
Send("TEST")
Sleep(1000)
Send("{ENTER}")
WinWaitActive("TEST")
Send("^!e")
Sleep(1000)
Send("^!c")
Sleep(1000)
WinClose("TEST")
Edito:Ya solucioné el problema.Pueden cerrar el tema si quieren. Aquí dejo el código corregido:
Código: Seleccionar todo
Run('Notepad "C:\Documents and Settings\Pablo\Mis documentos\TEST.txt"')
WinWaitActive("TEST - Bloc de notas")
Send("^e")
Sleep(1000)
Send("^c")
Sleep(1000)
WinClose("TEST")
gna08
Hacker del Foro
Mensajes: 379 Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina
Mensaje
por gna08 » 11 Jun 2009, 23:00
Código: Seleccionar todo
$test = FileRead("C:\Documents and Settings\Pablo\Mis documentos\TEST.txt") ; ya lo tenes almacenado en la variable, pordes usarlo directamente o como kiera!!
ClipPut($test) ;ya lo tenes en el portapapeles.
Acordate que debe existir el archivo a abrir
Cualkier cosa respondes como te fue,
Saludos
Aunk no m Buskes, Seguro m enkontras!
Mithrandir
Mensajes: 27 Registrado: 01 Jun 2009, 02:41
Mensaje
por Mithrandir » 12 Jun 2009, 04:14
Gracias gna08!! Es cierto, es más corto con la función fileread y clipget lo que pasa es que recién empiezo y tengo la "mentalidad de un macro" :p je, programo todo como si lo hiciera manual y no pensé en usar esa función. De hecho es más útil para lo que quiero hacer que es postear esa información en un post acá el código completo:
Código: Seleccionar todo
#include <IE.au3>
ClipPut(FileRead("C:\Documents and Settings\Pablo\Mis documentos\TEST.txt"))
$oIE = _IECreate ("http://forums.linkbucks.com/newthread.php?do=newthread&f=12")
$oForm = _IEFormGetCollection ($oIE, 0)
$oQuery = _IEFormElementGetCollection ($oForm, 0)
$oQuery2 = _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($oQuery, "usuario")
_IEFormElementSetValue ($oQuery2, "contraseña")
_IEFormSubmit ($oForm)
Sleep(10000);esto no es necesario ahora que me doy cuenta porque el _IEFormSubmit llama a _IELoadWait por defecto
$oForm1 = _IEFormGetObjByName ($oIE, "vbform")
$oQuery3 = _IEFormElementGetObjByName ($oForm1, "subject")
$oQuery4 = _IEFormElementGetObjByName ($oForm1, "message")
_IEFormElementSetValue ($oQuery3, "my test")
_IEFormElementSetValue ($oQuery4, ClipGet())
_IEFormSubmit ($oForm1)
gna08
Hacker del Foro
Mensajes: 379 Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina
Mensaje
por gna08 » 12 Jun 2009, 05:50
Tambien podrias hacer de la siguiente forma, ya k el portatapeles puede cambiar.
Código: Seleccionar todo
#include <IE.au3>
$valor = FileRead("C:\Documents and Settings\Pablo\Mis documentos\TEST.txt")
$oIE = _IECreate ("http://forums.linkbucks.com/newthread.php?do=newthread&f=12")
$oForm = _IEFormGetCollection ($oIE, 0)
$oQuery = _IEFormElementGetCollection ($oForm, 0)
$oQuery2 = _IEFormElementGetCollection ($oForm, 2)
_IEFormElementSetValue ($oQuery, "usuario")
_IEFormElementSetValue ($oQuery2, "contraseña")
_IEFormSubmit ($oForm)
Sleep(10000);esto no es necesario ahora que me doy cuenta porque el _IEFormSubmit llama a _IELoadWait por defecto
$oForm1 = _IEFormGetObjByName ($oIE, "vbform")
$oQuery3 = _IEFormElementGetObjByName ($oForm1, "subject")
$oQuery4 = _IEFormElementGetObjByName ($oForm1, "message")
_IEFormElementSetValue ($oQuery3, "my test")
_IEFormElementSetValue ($oQuery4, $valor)
_IEFormSubmit ($oForm1)
Aunk no m Buskes, Seguro m enkontras!