Simular un click del mouse
Como puedo generar un click derecho. Sin el mouse. Estoy creando un tutorial de una aplicaci贸n que cree... y necesito dar un ejemplo animado, ya muevo un dibujo de puntero del mouse sobre el Glass Pane, pero me falta simular el click.
Estimado Javier, llevo un par de d铆as intentando hacer exactamente eso "simular un click" o lo que es lo mismo enviar un evento similar, lo necesito para un curso que vamos a realizar y me es muy importante, mira... yo he estado provando con algunas API'S que te podrian dar un poco de luz, pero que conste que a mi no me funcionan:
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
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
Y ahora el proceso :
Dim l 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
l = 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)
l = 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
l = PostMessageBynum(Command1.hwnd, WM_LBUTTONDOWN, 0&, PosXY)
l = PostMessageBynum(Command1.hwnd, WM_LBUTTONUP, 0&, PosXY)
esto mueve el puntero y pulsa un boton, pero esta referido a un boton delpropio formulario VB y no al exterior que es lo que queremos, un saludo.
Const WM_LBUTTONDOWN = &H201
Const WM_LBUTTONUP = &H202
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
Y ahora el proceso :
Dim l 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
l = 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)
l = 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
l = PostMessageBynum(Command1.hwnd, WM_LBUTTONDOWN, 0&, PosXY)
l = PostMessageBynum(Command1.hwnd, WM_LBUTTONUP, 0&, PosXY)
esto mueve el puntero y pulsa un boton, pero esta referido a un boton delpropio formulario VB y no al exterior que es lo que queremos, un saludo.
