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 !

Añade tu respuesta

Haz clic para o