Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como hago para que raton cliquee automaticamente en un sitio???

Estas en el tema de Como hago para que raton cliquee automaticamente en un sitio??? en el foro de Visual Basic clásico en Foros del Web. Wenas!! Estoy haciendo un programa para automatizar algunos procesos cuando no stoi, y queria saber como puedo hacer que el mouse cliquee automaticamente en un ...
  #1 (permalink)  
Antiguo 02/04/2005, 08:52
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 5 meses
Puntos: 0
Como hago para que raton cliquee automaticamente en un sitio???

Wenas!!

Estoy haciendo un programa para automatizar algunos procesos cuando no stoi, y queria saber como puedo hacer que el mouse cliquee automaticamente en un lugar especifico d la pantalla.

Supongo k tndra algo k ver con las funciones mouseup y mousedown.

Gracias de antemano.
  #2 (permalink)  
Antiguo 04/04/2005, 05:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 14
Antigüedad: 19 años, 8 meses
Puntos: 0
A mi tambien me interesa!

He buscado como hacer que se clikee una parte de la pantalla con el raton en una funcion del visual, pero no lo encuentro!
  #3 (permalink)  
Antiguo 06/04/2005, 08:17
 
Fecha de Ingreso: noviembre-2004
Mensajes: 30
Antigüedad: 19 años, 5 meses
Puntos: 0
Wenas,

Por lo que veo creo k en visual basic eso k pido es imposible, asi k pediria k me dijeseis otro lenguaje con el k pudiera acer lo k pido.

Gracias de antemano
  #4 (permalink)  
Antiguo 06/04/2005, 17:24
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Para este codigo tuve que buscar un monton asi que espero que sea de ayuda para todos:

Agregas un modulo de clase y lo llamas clsmouse y copias:

Option Explicit
Public Event PositionChanged()
Public Event SytemClick(ByVal Button As MouseButtonConstants)
Private Const VK_RBUTTON As Long = &H2
Private Const VK_MBUTTON As Long = &H4
Private Const VK_LBUTTON As Long = &H1
Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2
Private Const MOUSEEVENTF_LEFTUP As Long = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN As Long = &H20
Private Const MOUSEEVENTF_MIDDLEUP As Long = &H40
Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
Private Type POINTAPI
X As Long
Y As Long
End Type
Private m_WatchPosition As Boolean
Private m_WatchSystemClicks As Boolean
Private m_Position As New clsmouseposition
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private 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 Sub Click(Optional MouseButton As MouseButtonConstants = vbLeftButton)
If (MouseButton = vbLeftButton) Then
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&)
ElseIf (MouseButton = vbMiddleButton) Then
Call mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0&, 0&, 0&, 0&)
Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0&, 0&, 0&, 0&)
ElseIf (MouseButton = vbRightButton) Then
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0&, 0&, 0&, 0&)
Call mouse_event(MOUSEEVENTF_RIGHTUP, 0&, 0&, 0&, 0&)
End If
End Sub

Private Function CompKey(KCode As Long) As Boolean
Dim Result As Long
Result = GetAsyncKeyState(KCode)
If Result = -32767 Then
CompKey = True
Else
CompKey = False
End If
End Function

Public Property Get Position() As clsmouseposition
Set Position = m_Position
End Property

Public Property Let TimerEvent(ByVal Dummmy As Boolean)
Dim CurPos As POINTAPI
Dim Value As MouseButtonConstants
Static First As Boolean
Static mx As Long
Static my As Long
If m_WatchPosition Then
Call GetCursorPos(CurPos)
If First Then
If CurPos.X <> mx Or CurPos.Y <> my Then
RaiseEvent PositionChanged
End If
End If
mx = CurPos.X
my = CurPos.Y
End If
If m_WatchSystemClicks Then
If CompKey(VK_LBUTTON) Then
Value = vbLeftButton
End If
If CompKey(VK_RBUTTON) Then
Value = Value Or vbRightButton
End If
If CompKey(VK_MBUTTON) Then
Value = Value Or vbMiddleButton
End If
If Value <> 0 Then
RaiseEvent SytemClick(Value)
End If
End If
First = True
End Property

Agregas otro y lo llamas clsmouseposition y pegas:

Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private m_x As Long
Private m_y As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, _
ByVal Y As Long) As Long

Private Sub GetPosition()
Dim P As POINTAPI
Call GetCursorPos(P)
m_y = P.Y
m_x = P.X
End Sub

Public Property Get X() As Long
Call GetPosition
X = m_x
End Property

Public Property Let X(lngValue As Long)
Call SetCursorPos(lngValue, m_y)
m_x = lngValue
End Property

Public Property Get Y() As Long
Call GetPosition
Y = m_y
End Property

Public Property Let Y(lngValue As Long)
Call SetCursorPos(m_x, lngValue)
m_y = lngValue
End Property

y en el form pones:

Option Explicit
Private WithEvents Mouse As clsmouse

Private Sub Command1_Click()
With Mouse
.Position.X = coodenada
.Position.Y = coordenada
.Click (vbLeftButton)
End With
'Si quieres pones x=100 y y=100, pones el Startupposition en center screen y que tu form no ocupe la pantalla completa hazlo pequeño para que veas que pasa
End Sub

Private Sub Form_Load()
Set Mouse = New clsmouse
End Sub

Espero les sirva...
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #5 (permalink)  
Antiguo 07/04/2005, 13:29
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
vb3xm, ése es el código adecuado

Como comentario: en VB se usa demasiado la API de win... Que no creáis que eso es del VB...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:27.