Leyendo Tutoriales

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Leyendo Tutoriales

Mensaje por Winer1 »

Bueno me recomendaron que hiciera los tutoriales y he aplicado el 2do tutorial y me surgido una o dos dudas.

Primero el codigo:

Código: Seleccionar todo

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
Send("Esto es AutoIt")
WinClose("Sin título: Bloc de notas")
WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")
Send("!n")
Bien lo unico que falla es lo siguiente Send("!n")

Al momento de corre el proceso todo bien pero ya almomento de cerrar con el send que se supone envia alt+n no se activa lo modifique de varias formas una de ellas fue asi Send("{!n}") pero no y dije bueno talvez deva ir en mayusculas y probe asi Send("!N") tampoco y luego dije en mayusculas pero con los corchetes asi Send("{!N}") y tampoco al igual que intente cambiando a + que se supone es = a Shift. Bueno espero me Puedan Ayudar Saludos. :smt028

Disculpen el tema que ya no tiene que ver con mi duda pero aun asi quiero que me resuelvan otra que me ha surgido porque en el tutorial muestran lo siguiente WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.") eso para que me sirve no entiendo. ya que lo he borrado y me andado de maravilla y ya me ha funcionado el Send("!n") por eso es que no borre el texto de arriva. Espero Un Explicacion.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Leyendo Tutoriales

Mensaje por Ximorro »

Me parece que será porque no encuentra la ventana, asegúrate de que el título es exactamente ese.
Por ejemplo en mi configuración, con Español (España) el título me sale:
"Sin título - Bloc de notas"
Fíjate en el guión, no tengo ":". Si pongo lo que tú lo que está pasando es que se queda esperando esa ventana que no encuentra.

Lo mismo para el WinClose. Y luego para cerrar la última ventana fíjate en las mayúsculas, a mí me sale "Bloc de notas", no "Bloc de Notas". Cambiando eso me va perfecto. La verdad es que esto me ha sorprendido, juraría que por defecto era sin importar mayúsculas, pero si no lo cambio no va.

He añadido un par de ConsoleWrite para que me diga lo que está haciendo (me sale en la consola de Scite), y un Sleep para que me dé tiempo a ver el texto que escribe en el notepad. El código es este:

Código: Seleccionar todo

Run("notepad.exe")
WinWaitActive("Sin título - Bloc de notas")
ConsoleWrite("Encontrada ventana principal" & @CRLF)
Send("Esto es AutoIt")
Sleep(2000)
WinClose("Sin título - Bloc de notas")
WinWaitActive("Bloc de notas", "El texto en el archivo Sin título ha cambiado.")
ConsoleWrite("Encontrada pregunta" & @CRLF)
Send("!n")
El Send está bien, y ese último WinWaitActive que no entiendes es para cerrar el notepad, porque como escribe un texto, al cerrar sale la pregunta esa de si quieres guardar el archivo, ahí la espera y después pulsa NO enviando ALT+N (para eso es el Send). No lo entiendes porque no has llegado a ver el diálogo, cuando lo veas lo entenderás.
Prueba a ejecutarlo sin esa línea y verás el diálogo. Luego prueba con la línea para ver cómo lo cierra automáticamente.
Por cierto, por si no lo has visto, para comentar una línea y no ejecutarla, usa un punto y coma al principio de la misma.

Una cosa, la especificación de títulos en principio comprueba el principio del texto, por ejemplo el último WinWaitActive lo puedes poner así:
WinWaitActive("Bloc", "El texto en el archivo")
y también funciona, claro que si recortas mucho hay que tener cuidado que no haya otra ventana que lo cumpla.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Muchas Gracias y amm si sale con los ":" bueno mira al momento de yo borrar

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

El proceso a corrido de maravilla por eso tengo la duda de para que es eso y probare comotu lo haz escrito aver si asi funciona como se supone que deveria segun la explicacion del tutorial.

Gracias y Saludos. :smt028
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Bien mira he probado tu Codigo y a vuelto ha hacer lo mismo. no a corrido el proceso asi que lo edite asi:

Código: Seleccionar todo

Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
ConsoleWrite("Encontrada ventana principal" & @CRLF)
Send("Esto es AutoIt")
Sleep(1000)
WinClose("Sin título: Bloc de notas")
ConsoleWrite("Encontrada pregunta" & @CRLF)
Sleep(1000)
Send("!n")
lo unico que he borrado ha sido esto:

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

y le he agregado otro intervalo de 1 segundo "Sleep(1000)" antes de "Send("!n")" y a funcionado de maravilla por eso sigo preguntadondeme para que sirve:

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

ya que con el en el codigo el proceso no corre ala perfecion ya que impide el envio de:

Send("!n")
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Leyendo Tutoriales

Mensaje por Ximorro »

Tienes que mirar bien los títulos tal como te salen a ti. Ejecuta primero el notepad a mano y lo miras. Si tienes los dos puntos pues tú pon los dos puntos.
Piensa que eso puede cambiar con la configuración de idioma, incluso aunque tengas español piensa que depende del país.
Yo he puesto lo que me sale a mí.

Para ver la segunda ventana escribe algo y le das a cerrar, entonces sale, a mí me sale esta:
Ventana.PNG
Ventana.PNG (9.2 KiB) Visto 3927 veces
El Send va perfectamente, pero es para esa ventana, si no te la detecta es cuando parece que no hace nada. Mira que a mí me sale "Bloc de notas" en minúscula, por eso lo he cambiado para que la encuentre.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Creo que ya no me has entendido el proceso ya sirve. Espero y no sientas que me complico mi existencia y la tuya(por ser el unico que repondio) pero mira lo unico que ahora quiero saver es porque esto:

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

esta en el tutoria eso que esta ahi ^^^^^^ no me deja corre el proceso asi que en mi codigo como en el tuyo lo borre y el proceso corrio ala perfeccion mi una duda es esta.

Porque esta incluido ese codigo en el proceso que funcion deberia de tener? porque si no lo borro el proceso no se termina para que el proceso corra como deberia tengo que borrarlo para que corra. y entonces queda como el codigo que edite. anteriormente.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Leyendo Tutoriales

Mensaje por Ximorro »

Pues la verdad es que tengo problemas para entenderte, porque si no entiendes esa línea es que no te está saliendo el diálogo
¿Seguro que te funciona?
¿Te abre el notepad Y ESCRIBE "Esto es AutoIt" DENTRO DEL NOTEPAD?

¿Y después lo cierra automáticamente?
¿te sale esa ventanita que te pongo arriba?
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Si todo funciona si borro esto.

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

*Me abre el npad
*Me escribe el texto
*Me lo intenta cerrar( sale la ventana )
*y envia alt+n ("!n")

y se cierra. pero solo si borro esto:
WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

de lo contrario no hace el ultimo punto y por lo tanto solo sale la ventana con las opciones Guarda, No Guardar y Cancelar pero no lo cierra y esto:

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")

es lo que interrumpia el proceso por eso estoy un poco interesado en saver que sesupone que deberia hacer ese codigo dentro del proceso.

Pero bueno ya esta solucionado con mi ayuda y con un poco de razonamiento(despues de que hice el tema se me ocurrio borrarlo y el processo corrio como debia se abrio, escribio y cerro.) Aun asi Gracias por tu Ayuda lo que me importaba era que el proceso funcionara para saber que todo estaba bien y que alguien me corrigiera si acaso estava cometiendo un error talvez solo es un pequeño error de quien escribio el tutorial en ingles porque se supone que los que tradujeron solo lo pasaran al español tal y como venia el original.

Bueno me despido mas tarde continuare con los tutoriales ya que en estos momentos me voy a dormir Saludos y Gracias nuevamente por tu ayuda y tu pasiencia. :smt028
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Leyendo Tutoriales

Mensaje por Ximorro »

Vale ya nos entendemos mejor ;-)
Pues ese código lo que hace es esperar esa ventana de la pregunta.
Si lo quitas igual te va porque como sale muy rápido el ALT+N igual va a esa ventana, pues es la activa.
Pero podría haber ocasiones en que esa ventana no salga tan rápida y entonces el ALT+N iría a la ventana principal (la activa) y no la cerraría.

Si no te funciona con esa línea es que no está encontrando el diálogo. ¿Es exactamente igual el texto de búsqueda? Fíjate que yo he tenido que cambiar la mayúscula, tienes que poner hasta los espacios igual.

El tutorial está bien, lo que pasa es que los títulos de las ventanas (o el texto interno del diálogo) cambian según la configuración de idioma de Windows, y puede que también con la versión de Notepad, eso tiene que cambiarlo el usuario, no pueden hacer versiones para todas las configuraciones.

Si no puedes hacer que esa línea funcione ponnos un pantallazo de ese diálogo, a ver si vemos algo raro.
Esa línea es importante para asegurarse de que el alt+n se ejecuta después de que salga la ventana, si no lo pones dependes de la velocidad de Windows al sacarla. Te funciona porque sale rápido, pero no es seguro.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Vale Gracias intentare analizar bien lo que hago mal para que funcione. Aun asi Pronto tendre mas dudas xD espero no desesperate ati y alos demas. :smt028
Avatar de Usuario
ms999
Hacker del Foro
Mensajes: 116
Registrado: 26 Ene 2011, 06:13

Re: Leyendo Tutoriales

Mensaje por ms999 »

WinWaitActive("Bloc de Notas", "El texto en el archivo Sin título ha cambiado.")
Lo que hace esto es esperar que una ventana con el titulo "Bloc de Notas" y que contenga el texto "El texto en el archivo Sin título ha cambiado." exista y este activa
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Gracias Man resolviste todo y el codigo a quedado asi:

Código: Seleccionar todo

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
ConsoleWrite("Encontrada ventana principal" & @CRLF)
Send("Esto es AutoIt")
Sleep(1000)
WinClose("Sin título: Bloc de notas")
WinWaitActive("Sin título", "Esto es AutoIt")
ConsoleWrite("Encontrada pregunta" & @CRLF)
Sleep(1000)
Send("!n")
Gracias por la ayuda de Ambos. :smt028
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Leyendo Tutoriales

Mensaje por Ximorro »

Pues chico, no es esa la intención del tutorial.
Ahí intentaban capturar ese diálogo donde te pregunta, tú ahora vuelves a localizar la ventana principal.

Pero oye, no importa, creo que ya has exprimido esto bastante, lo importante es que entiendas para qué son esas funciones y ver qué te pueden ofrecer. Yo de ti pasaría a otra cosa o a hacer tus variaciones con otras ventanas (por ejemplo abrir una calculadora y hacer una operación desde AutoIt ;-) )
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Winer1
Mensajes: 26
Registrado: 20 Jun 2011, 21:32

Re: Leyendo Tutoriales

Mensaje por Winer1 »

Si ya lo deje bien exprimido(lo he comprendido completamente) ahora seguire con el siguiente tutorial pero en cuando los termine tratare de usarlo con otro tipos de funciones(cosas como otro programa...) Gracias por su Ayuda espero que en unas semanas o antes de entrar a clases pueda hacer un 100% mi Macro xD espero y hasta le pueda poner modificacion de Tiempos xD con Un Lindo Exe que abra una ventanita con la opcion de Tiempo el pausa, empesar, continuar y su x de cerrar Dx... creen eso posible?
Responder