Controlar el mouse

flor
29 de Agosto del 2005
Necesito hacer un programita que simule el click del boton derecho reiteradas veces en visual basic 6.0(en vez de hacer click yo, todo el tiempo, lo haga autoamticamente el programa).
Quiero saber cual es la rutina que tengo que utilizar.
Les agradeceria que me respondan
Saludos
Florencia Maneiro

Zoto
29 de Agosto del 2005
Aqu铆 te doy unos cuantos prodecimientos y APIs para controlar el Mouse. Bastar谩 con que las pegues en un M贸dulo y las llames de acuerdo con sus par谩metros:

'----------------------------------------------------------
'----------------------------------------------------------
'C脫DIGO PARA CONTROLAR EL CURSOR
'----------------------------------------------------------
'----------------------------------------------------------


'----------------------------------------------------------
'API's para controlar el cursor
'----------------------------------------------------------

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 Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'----------------------------------------------------------
'CONSTANTES para los eventos del cursor
'----------------------------------------------------------

Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20
Public Const MOUSEEVENTF_MIDDLEUP = &H40
Public Const MOUSEEVENTF_RIGHTDOWN = &H8
Public Const MOUSEEVENTF_RIGHTUP = &H10
Public Const MOUSEEVENTF_MOVE = &H1

'----------------------------------------------------------
'TIPO para las coordenadas del cursor
'----------------------------------------------------------

Type POINTAPI
X As Long
Y As Long
End Type

'----------------------------------------------------------
'PROCEDIMIENTOS para el control del cursor
'----------------------------------------------------------


Public Sub MoveMouse(X As Integer, Y As Integer)
'Mueve el cursor a las coordenadas dadas
On Error GoTo error
SetCursorPos X, Y
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub MousePosition(X As Integer, Y As Integer)
'Devuelve las coordenadas actuales de la posici贸n del cursor
'sobreescribiendo los valores de los par谩metros pasados
On Error GoTo error
Dim MousePos As POINTAPI
If Index = 0 Then
GetCursorPos MousePos
X = MousePos.X
Y = MousePos.Y
End If
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub LeftClick()
'Realiza un Click Izquierdo
On Error GoTo error
LeftDown
LeftUp
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub LeftDown()
'Bot贸n izquierdo del Mouse pulsado
On Error GoTo error
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub LeftUp()
'Bot贸n izquierdo del Mouse dejado de pulsar
On Error GoTo error
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub MiddleClick()
'Realiza un Click con el bot贸n del Medio
On Error GoTo error
MiddleDown
MiddleUp
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub MiddleDown()
'Bot贸n del medio del mouse pulsado
On Error GoTo error
mouse_event MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub MiddleUp()
'Bot贸n del medio del mouse dejado de pulsar
On Error GoTo error
mouse_event MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub RightClick()
'Realiza un click Derecho
On Error GoTo error
RightDown
RightUp
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub RightDown()
'Bot贸n derecho del Mouse pulsado
On Error GoTo error
mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub RightUp()
'Bot贸n derecho del Mouse dejado de pulsar
On Error GoTo error
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub HideMouse()
'Oculta el cursor
On Error GoTo error
ShowCursor (bShow = False)
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

Public Sub ShowMouse()
'Muestra el cursor
On Error GoTo error
ShowCursor (bShow = True)
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error"
End Sub

'----------------------------------------------------------
'----------------------------------------------------------
'C脫DIGO PARA CONTROLAR EL CURSOR
'----------------------------------------------------------
'----------------------------------------------------------

Espero que te sirva todo este c贸digo.
Con 茅l puedes hacer f谩cilmente lo que te propones, simplemente usando un control Timer con un intervalo de tiempo determinado (dependiendo de la velocidad que desees) y llamando al procedimiento RightClick.

Si tienes alg煤n problema cons煤ltalo aqu铆.

Hasta otra,

Zoto