Página 1 de 1

Ayuda con Controlsend

Publicado: 26 Jun 2010, 04:43
por Turczyk
Hola, estuve leyendo el tutorial de la página oficial de AutoIt pero no consigo enviar teclas a otra ventana, en este caso para el Bloc de notas. No se que estoy haciendo mal, no me da ningún error al compilar ni de parametros en la función del controlsend. Desde ya muchas gracias por su tiempo

Código: Seleccionar todo

 cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         Turczyk

 Script Function:
	Not declared yet

#ce ----------------------------------------------------------------------------
#include <GUIConstantsEx.au3>
GUICreate("Turczyk's support", 335, 100)
GUICtrlCreateLabel("Key", 8, 10)
$key1 = GUICtrlCreateInput("", 35, 8, 120)
GUICtrlCreateLabel("Time", 8, 44)
$time1 = GUICtrlCreateInput("", 35, 40, 120)
$startbutton = GUICtrlCreateButton("Start", 190, 8, 60)
$closebutton = GUICtrlCreateButton("Close", 190, 42, 60)


GUISetState(@SW_SHOW)

While 1
	$msg = GUIGetMsg()
	
	Select
		
		Case $msg = $startbutton
				
                    ControlSend ("Sin título - Bloc de notas","","", "Hello world!")
                    send(1)
			
		Case $msg = $closebutton
			GUIDelete()
			ExitLoop
			
	EndSelect
		
WEnd

Re: Ayuda con Controlsend

Publicado: 26 Jun 2010, 05:45
por gna08
Hola que tal.. bueno mira tu problema es el siguiente.. como el prefijo de estas funciones lo dicen es Control
Osea k estas trabajando con Controles.. por lo tanto seria muy descuidado olvidar dicho detalle :smt015 jeje y por lo k me fije que no estas espeficando a k control estas enviado dicho texto.. me explico?.. no se sabe si es a un input, un edit, un boton :| :smt017 .. entonces el error esta aka :

ControlSend ("Sin título - Bloc de notas","","CONTROL", "Hello world!")

Por lo tanto en este caso que hablamos del block de notas de windows.. el control es un Edit y al haber un solo edit. y en este caso posee la instancia numero uno entonces el control ah de ser Edit1. entonces para concluir la funcion deberia kedar

ControlSend ("Sin título - Bloc de notas","","Edit1", "Hello world!")

Reemplazalo por eso y lo probas.. y me decis komo te fue.. saludos :smt006

Re: Ayuda con Controlsend

Publicado: 26 Jun 2010, 06:08
por Turczyk
gna08 escribió:Hola que tal.. bueno mira tu problema es el siguiente.. como el prefijo de estas funciones lo dicen es Control
Osea k estas trabajando con Controles.. por lo tanto seria muy descuidado olvidar dicho detalle :smt015 jeje y por lo k me fije que no estas espeficando a k control estas enviado dicho texto.. me explico?.. no se sabe si es a un input, un edit, un boton :| :smt017 .. entonces el error esta aka :

ControlSend ("Sin título - Bloc de notas","","CONTROL", "Hello world!")

Por lo tanto en este caso que hablamos del block de notas de windows.. el control es un Edit y al haber un solo edit. y en este caso posee la instancia numero uno entonces el control ah de ser Edit1. entonces para concluir la funcion deberia kedar

ControlSend ("Sin título - Bloc de notas","","Edit1", "Hello world!")

Reemplazalo por eso y lo probas.. y me decis komo te fue.. saludos :smt006
Hola, muchas gracias si funcionó con lo que me has dicho. Pero ahora tengo otra duda intenté enviar eso mismo a un documento de word, intenté lo siguiente:

Código: Seleccionar todo

ControlSend ("Documento1 - Microsoft Word","","Edit1", "Hello world!")
Y no funciona, es por lo del control también? A donde puedo ver eso de los controles para informarme mejor? Desde ya muchas gracias =)

Re: Ayuda con Controlsend

Publicado: 26 Jun 2010, 06:17
por gna08
Bien.. este varia en el word... para averiguar los controles y ventanas necesitas usar la herramienta k viene con autoit
se llama AutoIt Window Info pero tambien existe una UDF word.au3 para controlar al Word.

Re: Ayuda con Controlsend

Publicado: 26 Jun 2010, 14:49
por Turczyk
gna08 escribió:Bien.. este varia en el word... para averiguar los controles y ventanas necesitas usar la herramienta k viene con autoit
se llama AutoIt Window Info pero tambien existe una UDF word.au3 para controlar al Word.
Muchisimas gracias, ya conseguí hacer lo que me dijiste, ahora si no te molesta la última duda, como hago para enviar teclas a 2 ventanas diferentes pero con el mismo nombre? Usé el AutoIt Window info pero la única diferencia que encuentro entre ambas ventanas es el Handle, pensé que iban a tener una ID diferente pero me dice que ninguna de las 2 tiene ID, es decir me muestra el campo de la ID vacio.
Gracias por tu tiempo ^^

Edit: Estuve leyendo y encontré que puedo cambiar el title de una ventana

Código: Seleccionar todo

winsettitlewinsettitle("Sin Título - Bloc de notas", "", "Ventana1")
El tema que no se como asignarle el nombre que quiero a cada una de las ventanas si es que tengo muchas con el mismo nombre

Edit2: Creo que ya lo conseguí:

Código: Seleccionar todo

winsettitlewinsettitle("Sin Título - Bloc de notas", "", "Ventana1")
winsettitlewinsettitle("Sin Título - Bloc de notas", "", "Ventana2")
Al hacer esto cuando ya tengo las 2 ventanas abiertas a la primera le pone Ventana1 y a la segunda Ventana2, no se como no se me ocurrió antes siendo programación estructurada.
Gracias por todo gna08, realmente lo aprecio.