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