Tecla que cumpla la función del commandbutton.
Hola! Estoy haciendo un macro que mueve el mouse a las posiciones que indico desde una serie de textboxs y hace clikcs,esto lo hago presionando un commandbutton, ahora la pregunta es ¿como hago para que la accion se cumpla presionando cualquier tecla?, eso es no se como hacer que por ejemplo, apretando Ctrl, se cumpla la accion, y también quiero que no haga falta que este el proyecto seleccionado para que se cumpla la accion, es decir, que por ejemplo, el proyecto este minimizado y este abierto un videojuego, y apretando Ctrl se cumpla la accion de todos modos.
Aqui el codigo:
Option Explicit Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long) Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dX As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Private Const LEFT_DOWN = &H2 Private Const LEFT_UP = &H4 ' * Colocar un control Timer '------------------------------------------------- 'Estructura de coordenadas para el api GetCursorPos Private Type POINTAPI X As Long Y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Dim Mouse As POINTAPI Private Sub Form_Load() 'Ponemos el Timer en 100 Timer1.Interval = 100 Me.FontSize = 10 End Sub Private Sub Timer1_Timer() 'Ejecutamos la función y recuperamos la posicion del cursor Call GetCursorPos(Mouse) ' limpia el form Me.Cls Me.Print "Posicion del cursor :" 'Imprimimos las cordenadas X e Y devueltas por el api Me.Print "X:" + Str$(Mouse.X) + vbCrLf + "Y:" + Str$(Mouse.Y) End Sub Private Sub LeftClick() mouse_event LEFT_DOWN, 0&, 0&, Mouse.X, Mouse.Y mouse_event LEFT_UP, 0&, 0&, Mouse.X, Mouse.Y End Sub Private Sub Accion() SetCursorPos Text1.Text, Text2.Text 'va hasta la posicion X(señalada en el texbox1) y la posicion Y(señalada en el textbox2) Call LeftClick 'aquí hace el click SetCursorPos Text3.Text, Text4.Text Call LeftClick SetCursorPos Text5.Text, Text6.Text Call LeftClick SetCursorPos Text7.Text, Text8.Text Call LeftClick End Sub Private Sub Command1_Click() Call Accion End Sub Private Sub Timer2_Timer() If GetKeyState(vbKeyB) < 0 Then Call Command1_Click End If End Sub
Gracias !