Gente quiero crear un scrip y buscando no encontre algo que me diera un ejemplo porque nose si se pueda hacer por ejemplo
clickleft
send ("2")
delay 100
send ("3")
o sea en difinitiva cuando aga clickleft mande las key
EDIT: se puede hacer que un clickleft se ejecute un scrip?
Enviar tecla con mousleft se ´puede?
Re: Enviar tecla con mousleft se ´puede?
Veo este mensaje desde hace unos días y lo he intentado, pero no me ha salido.
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Enviar tecla con mousleft se ´puede?
Bueno, mandar las teclas es facil no? Por ejemplo, con la función send (para cualquier cosa en general),o con controlsend (para enviar teclas a controles). Mirar en la ayuda.
Lo que os puede resultar más complicado es encontrar el modo de enviar estas teclas cuando pulsas el botón izquierdo del ratón. Vamos, lo que es detectar esta pulsación! . Pues se puede hacer de varias formas. Yo se 3 o 4:
1º. Utilizando el valor $GUI_EVENT_PRIMARYDOWN y comparándolo con es resultado de la función guigetmsg (mirarla en la ayuda). Variando mínimamente el ejemplo de la función anterior:
2º. Utilizar la captura de eventos. En este caso se tendría que hacer capturando los eventos pertenecientes a WM_LBUTTONDOWN, que son las pulsaciones del botón izquierdo del ratón (para más información, buscar en la ayuda el tema "Windows Message Codes" donde encontrareis todos los mensajes que puede enviar windows).
Os pongo un pequeño ejemplo:
Personalmente, yo casi seguro que utilizaría uno de estos dos método, si quereis que la pulsación sea detectada dentro de vuestra ventana.
3º. Utilizando la función _ispressed de la udf misc.au3 que trae autoit. Metiendo esta función en un bucle y haciendo una comparación condicional, puede detectar cualquier tipo de pulsación. El código para la pulsación del botón izquierdo del ratón es el 01. Mirar en la ayuda su tabla y ejemplo.
4º Esta ya es avanzada. Utiliza apis de windows. Por fortuna la añadieron en la udf winapi.au3 que trae autoit, con un buen ejemplo. Mira el ejemplo de por ejemplo la api _WinAPI_SetWindowsHookEx. Trata sobre este tema a nivel más bajo. Es algo parecido a la función _ispressed pero mejor. Utiliza los mismos códigos que _ispressed (keycode).
También os puede interesar _WinAPI_Mouse_Event.
Con esto yo creo que vale. Buscar en el foro que algunos de estos temas están muy tratados. Por ejemplo, el punto 4º lo he tratado en varios post hace mucho tiempo, con buenas explicaciones incluídas .
Saludos.
Lo que os puede resultar más complicado es encontrar el modo de enviar estas teclas cuando pulsas el botón izquierdo del ratón. Vamos, lo que es detectar esta pulsación! . Pues se puede hacer de varias formas. Yo se 3 o 4:
1º. Utilizando el valor $GUI_EVENT_PRIMARYDOWN y comparándolo con es resultado de la función guigetmsg (mirarla en la ayuda). Variando mínimamente el ejemplo de la función anterior:
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $MESSAGE = "The following buttons have been clicked"
Local $add, $clear, $mylist, $close, $msg
GUICreate("My GUI list") ; will create a dialog box that when displayed is centered
$add = GUICtrlCreateButton("Add", 64, 32, 75, 25)
$clear = GUICtrlCreateButton("Clear", 64, 72, 75, 25)
$mylist = GUICtrlCreateList("buttons that have been clicked", 176, 32, 121, 97)
GUICtrlSetLimit(-1, 200) ; to limit horizontal scrolling
GUICtrlSetData(-1, $MESSAGE)
$close = GUICtrlCreateButton("my closing button", 64, 160, 175, 25)
GUISetState()
$msg = 0
While $msg <> $GUI_EVENT_CLOSE
$msg = GUIGetMsg()
Select
Case $msg = $add
GUICtrlSetData($mylist, "You clicked button No1|")
Case $msg = $clear
GUICtrlSetData($mylist, "")
Case $msg = $close
MsgBox(0, "", "the closing button has been clicked", 2)
Exit
Case $GUI_EVENT_PRIMARYDOWN=$msg
MsgBox(0,"","He pulsado el botón izquierdo del ratón")
EndSelect
WEnd
EndFunc ;==>Example
Os pongo un pequeño ejemplo:
Código: Seleccionar todo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $msg
GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN") ;registro del evento pulsar botón izquierdo del ratón
GUICreate("My GUI") ; will create a dialog box that when displayed is centered
GUISetState(@SW_SHOW) ; will display an empty dialog box
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
Func WM_LBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam)
;aquí dentro teneis que poner el código para enviar la tecla cuando pulses el botón izquierdo.
#forceref $hWnd, $iMsg
Local $hWndFrom, $iIDFrom, $iCode
$hWndFrom = $ilParam
$iCoordX = BitAND($ilParam, 0xFFFF) ; Low Word
$iCoordY = BitShift($ilParam, 16) ; Hi Word
MsgBox(0,"Coordenadas de pulsación en la ventana",$iCoordX & "," & $iCoordY)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
3º. Utilizando la función _ispressed de la udf misc.au3 que trae autoit. Metiendo esta función en un bucle y haciendo una comparación condicional, puede detectar cualquier tipo de pulsación. El código para la pulsación del botón izquierdo del ratón es el 01. Mirar en la ayuda su tabla y ejemplo.
4º Esta ya es avanzada. Utiliza apis de windows. Por fortuna la añadieron en la udf winapi.au3 que trae autoit, con un buen ejemplo. Mira el ejemplo de por ejemplo la api _WinAPI_SetWindowsHookEx. Trata sobre este tema a nivel más bajo. Es algo parecido a la función _ispressed pero mejor. Utiliza los mismos códigos que _ispressed (keycode).
También os puede interesar _WinAPI_Mouse_Event.
Con esto yo creo que vale. Buscar en el foro que algunos de estos temas están muy tratados. Por ejemplo, el punto 4º lo he tratado en varios post hace mucho tiempo, con buenas explicaciones incluídas .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Enviar tecla con mousleft se ´puede?
Chefito escribió:Bueno, mandar las teclas es facil no? Por ejemplo, con la función send (para cualquier cosa en general),o con controlsend (para enviar teclas a controles). Mirar en la ayuda.
Lo que os puede resultar más complicado es encontrar el modo de enviar estas teclas cuando pulsas el botón izquierdo del ratón. Vamos, lo que es detectar esta pulsación! . Pues se puede hacer de varias formas. Yo se 3 o 4:
1º. Utilizando el valor $GUI_EVENT_PRIMARYDOWN y comparándolo con es resultado de la función guigetmsg (mirarla en la ayuda). Variando mínimamente el ejemplo de la función anterior:2º. Utilizar la captura de eventos. En este caso se tendría que hacer capturando los eventos pertenecientes a WM_LBUTTONDOWN, que son las pulsaciones del botón izquierdo del ratón (para más información, buscar en la ayuda el tema "Windows Message Codes" donde encontrareis todos los mensajes que puede enviar windows).Código: Seleccionar todo
#include <GUIConstantsEx.au3> Example() Func Example() Local $MESSAGE = "The following buttons have been clicked" Local $add, $clear, $mylist, $close, $msg GUICreate("My GUI list") ; will create a dialog box that when displayed is centered $add = GUICtrlCreateButton("Add", 64, 32, 75, 25) $clear = GUICtrlCreateButton("Clear", 64, 72, 75, 25) $mylist = GUICtrlCreateList("buttons that have been clicked", 176, 32, 121, 97) GUICtrlSetLimit(-1, 200) ; to limit horizontal scrolling GUICtrlSetData(-1, $MESSAGE) $close = GUICtrlCreateButton("my closing button", 64, 160, 175, 25) GUISetState() $msg = 0 While $msg <> $GUI_EVENT_CLOSE $msg = GUIGetMsg() Select Case $msg = $add GUICtrlSetData($mylist, "You clicked button No1|") Case $msg = $clear GUICtrlSetData($mylist, "") Case $msg = $close MsgBox(0, "", "the closing button has been clicked", 2) Exit Case $GUI_EVENT_PRIMARYDOWN=$msg MsgBox(0,"","He pulsado el botón izquierdo del ratón") EndSelect WEnd EndFunc ;==>Example
Os pongo un pequeño ejemplo:Personalmente, yo casi seguro que utilizaría uno de estos dos método, si quereis que la pulsación sea detectada dentro de vuestra ventana.Código: Seleccionar todo
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Local $msg GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN") ;registro del evento pulsar botón izquierdo del ratón GUICreate("My GUI") ; will create a dialog box that when displayed is centered GUISetState(@SW_SHOW) ; will display an empty dialog box ; Run the GUI until the dialog is closed While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd GUIDelete() Func WM_LBUTTONDOWN($hWnd, $iMsg, $iwParam, $ilParam) ;aquí dentro teneis que poner el código para enviar la tecla cuando pulses el botón izquierdo. #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode $hWndFrom = $ilParam $iCoordX = BitAND($ilParam, 0xFFFF) ; Low Word $iCoordY = BitShift($ilParam, 16) ; Hi Word MsgBox(0,"Coordenadas de pulsación en la ventana",$iCoordX & "," & $iCoordY) Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND
3º. Utilizando la función _ispressed de la udf misc.au3 que trae autoit. Metiendo esta función en un bucle y haciendo una comparación condicional, puede detectar cualquier tipo de pulsación. El código para la pulsación del botón izquierdo del ratón es el 01. Mirar en la ayuda su tabla y ejemplo.
4º Esta ya es avanzada. Utiliza apis de windows. Por fortuna la añadieron en la udf winapi.au3 que trae autoit, con un buen ejemplo. Mira el ejemplo de por ejemplo la api _WinAPI_SetWindowsHookEx. Trata sobre este tema a nivel más bajo. Es algo parecido a la función _ispressed pero mejor. Utiliza los mismos códigos que _ispressed (keycode).
También os puede interesar _WinAPI_Mouse_Event.
Con esto yo creo que vale. Buscar en el foro que algunos de estos temas están muy tratados. Por ejemplo, el punto 4º lo he tratado en varios post hace mucho tiempo, con buenas explicaciones incluídas .
Saludos.
Gracias mi amigo te mataste escribiendo me sirvio mucho xD probare aver que onda lugo te digo como me fue