Mover el mouse , clikear y volver el puntero a donde estaba originalmente

Ignacio
08 de Julio del 2009
Lo q necesito es q al presionar una tecla , el mouse se mueva a unas coordenadas establecidas por mí , haga un click y vuelva a donde estaba antes de moverse.
Yo lo q he logrado es q al pulsar la tecla , el mouse se mueva a donde yo le dije , clickee pero no se como puedo hacer para q vuelva a donde estaba originalmente , alguien sabe como hacerlo??
El Código q utilizo para mover el mouse y clickear es este.

'<<<<<<<-----------------------------Codigo----------->>>>>>
Option Explicit
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Type POINTAPI
X As Long
Y As Long
End Type

'Declaramos la funcion api para hacer clicks y mover el mouse
Public 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)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20
Public Const MOUSEEVENTF_MIDDLEUP = &H40
Public Const MOUSEEVENTF_MOVE = &H1
Public Const MOUSEEVENTF_ABSOLUTE = &H8000
Public Const MOUSEEVENTF_RIGHTDOWN = &H8
Public Const MOUSEEVENTF_RIGHTUP = &H10
SetCursorPos 563, 123
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0


Juan
08 de Julio del 2009
Pues sólo hay que salvar la posición inicial antes de
mover el cursor para después volver a ella. Ejemplo:

Dim puntoPartida As POINTAPI
GetCursorPos puntoPartida 'salva la posición inicial
SetCursorPos 563, 123 'mueve el cursor
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 'cl
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 'ick
SetCursorPos puntoPartida.X, puntoPartida.Y 'vuelve a la posición inicial

Pablo
08 de Julio del 2009
Espero que te sirva lo que te mande a tu correo....

oo
08 de Julio del 2009
Justo ahora yo keria hacer algo parecido a esto y mira me encuentro tu codigo,k suerte la mia :D
No tengo grandes conocimientos de visual basic y el codigo de arriba me da un error .
Uso vb6.0 ,he creado un exe y lo he hecho copiar pegar y m da como error
No se permiten constantes,cadenas de longitud fija,matrices e instrucciones DeCLARE como miembros Public de módulos de objeto

el error me lo da en todos los
Public const MOUSEEVENTF_LEFTDOWN = &H2
.....
en el const,me podrias decir que es ??

jeta
08 de Julio del 2009
A las funciones cambia Public por Private y a las constantes les quitas Public.

Espero que lo hayas entendido.

mvallejos
08 de Julio del 2009
OO

El post original tiene casi 6 años.... yo diría que no te va a contestar

Saludos