InicioInfoControlar el ratón en Visual Basic

Controlar el ratón en Visual Basic

Info4/11/2015
Controlar el ratón con la API de windows mouse_event

Decidí crear este post porque en los que vi (no vi muchos igual ajja), para hacer esto mismo utilizan tres APIs: mouse_event solo para hacer clic, después una para obtener la posición del puntero y otra para codificarla. Acá solo voy a utilizar la primera, xq con esta también movés el puntero, la rueda, etc.

Yo supongo que ya saben como utilizar el visual basic así que:

1. Crean un modulo

2. Pegan todas estas porquerías:

Public Enum MOUSEEVENTENUM
MOUSEEVENTF_ABSOLUTE = &H8000
MOUSEEVENTF_LEFTDOWN = &H2
MOUSEEVENTF_LEFTUP = &H4
MOUSEEVENTF_MIDDLEDOWN = &H20
MOUSEEVENTF_MIDDLEUP = &H40
MOUSEEVENTF_RIGHTDOWN = &H8
MOUSEEVENTF_RIGHTUP = &H10
MOUSEEVENTF_WHEEL = &H800
MOUSEEVENTF_HWHEEL = &H1000
MOUSEEVENTF_MOVE = &H1
End Enum

Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As MOUSEEVENTENUM, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal dwData As Long, _
ByVal dwExtraInfo As Long)




Y TA ya quedo listo solo queda usar esto:

Para hacer clic izquierdo:

PARA PRESIONAR EL BOTÓN :
mouse_event MOUSEEVENTF_LEFTDOWN, 0,0,0,0

PARA SOLTAR EL BOTÓN
mouse_event MOUSEEVENTF_LEFTUP , 0,0,0,0


Hacer clic derecho:

Igual que el anterior pero con MOUSEEVENTF_RIGHTDOWN para presionar y MOUSEEVENTF_RIGHTUP para soltar


Clic con botón central:

Igual que los dos anteriores pero pero con MOUSEEVENTF_MIDDLEDOWN para presionar y MOUSEEVENTF_MIDDLEUP para soltar el botón

Muy importante es ejecutar la función de soltar el botón sino el clic quedara presionado


Mover el puntero:

En el primer parámetro se coloca MOUSEEVENTF_MOVE
En el parámetro dx se pone la cantidad que queremos que se mueva en el eje de las X y en dy en el de las Y.

Ejemplos:
mouse_event MOUSEEVENTF_MOVE , 10,0,0,0 Mueve 10 mickeys (si se mide en mickeys ) hacia a derecha

mouse_event MOUSEEVENTF_MOVE , -10,0,0,0 Mueve mickeys 10 hacia la izquierda

mouse_event MOUSEEVENTF_MOVE , 0,20,0,0 Mueve mickeys 20 hacia abajo

mouse_event MOUSEEVENTF_MOVE , 0,-20,0,0 Mueve mickeys 20 hacia arriba

mouse_event MOUSEEVENTF_MOVE , 10,-10,0,0 en diagonal hacia arriba a la derecha

Y así ponen los valores que quieran, si ponen valores muy altos solo va a quedar contra un borde.


También se pueden poner las coordenadas a donde quieren que aparezca el puntero. Esto se hace con MOUSEEVENTF_ABSOLUTE, en dx y dy las coordenadas de X e Y respectivamente.
ejemplo:
mouse_event MOUSEEVENTF_ABSOLUTE, 450, 1560, 0, 0 Que es en algún lugar de la pantalla


Mover la rueda del mouse:

Si se desea girar la rueda de forma vertical es con MOUSEEVENTF_WHEEL, de forma horizontal es con MOUSEEVENTF_HWHEEL ( ).
En dwData (que es el cuarto parámetro) se especifica cuanto querés que gire.

Ejemplos:
mouse_event MOUSEEVENTF_WHEEL, 0, 0, 10, 0 Haces girar la rueda hacia arriba
mouse_event MOUSEEVENTF_WHEEL, 0, 0, -10, 0 Hacia abajo

mouse_event MOUSEEVENTF_HWHEEL, 0, 0, -10, 0 Se inclina hacia la izquierda
mouse_event MOUSEEVENTF_HWHEEL, 0, 0, 10, 0 Hacia la derecha


Y eso es todo espero que les sirva para algún proyecto que hagan, a mi me andubo bien de bien en vb 6 pero en los mas nuevos debe de andar también tal vez con modificaciones.
A la información la saque de la pagina de Microsoft (está en ingles y para c++ no para vb) que voy a poner a continuación.


Datos archivados del Taringa! original
2puntos
159visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

l
leandro_lede🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.