Quisiera saber si hay alguna manera de simular pulsaciones del mouse con APIs. He intentado hacerlo con algunos ejemplos que he encontrado pero no soy capaz.
Gracias de antemano.
Hola proba con esto
Private Declare Function PostMessageBynum Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 'enviar mensajes al control
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long 'posicionar el puntero del ratón
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long 'obtener la posición del control
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
Private Sub Command1_Click()
MsgBox "HOLA"
End Sub
Private Sub Command2_Click()
Dim rsp As Long, PosX As Long, PosY As Long, PosXY As Long
Dim lpRect As RECT
'conocer las posición del botón relativa a la pantalla, en pixels
rsp = GetWindowRect(Command1.hwnd, lpRect)
'colocar el ratón sobre el centro del botón
PosX = lpRect.Left + ((lpRect.Right - lpRect.Left) / 2)
PosY = lpRect.Top + ((lpRect.Bottom - lpRect.Top) / 2)
rsp = SetCursorPos(PosX, PosY)
'obtener la posicion del centro del control relativa al propio control,
'en pixels
'no es obligatorio, es para que las coordenadas recibidas en el mousedown
'del control sean coherentes
'la posicion y va en la palabra alta y la x en la baja
PosXY = (PosY - lpRect.Top) * 65536 + (PosX - lpRect.Left)
'simular el click del ratón
rsp = PostMessageBynum(Command1.hwnd, WM_LBUTTONDOWN, 0&, PosXY)
rsp = PostMessageBynum(Command1.hwnd, WM_LBUTTONUP, 0&, PosXY)
End Sub
Saludos.