Accion al mover el raton

Iniciado por Snort, 24 Septiembre 2006, 12:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Snort

  Wolas, vereis estaba haciendo un programilla, qe tiene una fase qe es tipo salvapantallas, es decir formularios en visible=false y cuando se presione una tecla, se mueva el raton, o se haga click haga una accion, pero ahi me he qedado estancao. Supongo qe si se podra hacer pero me estoy volviendo loco con el mousemove, mouseup, mousedown... y nada.
    Alguien me podria ayudar?

Thanks

~~

Hola:

Tines q usar una Api, mira aki te dejo un ejemplo (eso si, tienes q indicar las coordenadas)

Módulo:
Declare Sub SetCursorPos Lib "User32" (ByVal X As Integer, ByVal Y As Integer)

Form:
Private Sub Form_Load()
     X% = (Form1.Left + Command1.Left + Command1.Width / 2 + 60) / Screen.TwipsPerPixelX
     Y% = (Form1.Top + Command1.Top + Command1.Height / 2 + 360) / Screen.TwipsPerPixelY
     SetCursorPos X%, Y%
End Sub


Esto pondria el raton sobre un boton a la carga del formulario. Espero que sea esto lo q estas buscando

1S4ludo

Snort

   Gracias por la respuesta EON, pero no es eso exactamente, eso es para situar el cursor en el command1 cuando se cargue el formulario (no?), pero lo qe yo digo es, por ejemplo, un programa qe se ejecute ocultamente, tipo virus, y qe cuando muevas el raton, en windows o donde sea, sin el formulario de tu prorgama o hagas click en cualqier sitio de la pantalla te salga un msgbox por ejemplo diciendo "Ha movido el raton" o "ha pulsado el boton izkierdo/derecho del raton", no se si me he explicado bien, qe ocurra una accion cuando ocurra el evento "mover raton" (qe es lo qe no se lo qe es)

   Saludos

gmf_321

#3
Para cambiar de posicion el mouse vas a usar la siguiente api:
Public Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
Para hacer click con el mouse vas a usar la siguiente api:
Public Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy _
    As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Constantes del mouse_event
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10
Const MOUSEEVENTF_WHEEL = &H80
Const MOUSEEVENTF_XDOWN = &H100
Const MOUSEEVENTF_XUP = &H200
Const WHEEL_DELTA = 120
Const XBUTTON1 = &H1
Const XBUTTON2 = &H2


Para hacer click pone este code
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

Despues para mover el mouse :
SetCursorPos("x", "y")

           Saludos FMG ..........
1. La vanidad y la avaricia son dos pecados capitales, por lo que un verdadero hacker no hackea por ganar dinero o fama.
2. Odia a Telefónica pero no te metas con ella
3. No hackees sistemas pobres que no puedan reponerse de un ataque fuerte. Ni tampoco sistemas muy ricos o grandes que puedan permitirse gastar dinero y tiempo en buscarte.

~~

Hola:

Disculpa, pensaba q te referias a otra cosa... xD

Eso q dices se puede hacer adaptando el code q a puesto gmf_321

Si pones en un timer la parte del codigo q dice:

SetCursorPos("x", "y")

y estableces la con un if q cada vez q cambie salte un msgbox... Te pondria un ejemplo, pero es q me salta error de compilacion al usar esa linea... no se si es q esta mal o que, pero yo no le veo el fallo, me dice q falta un "="  :o

Esa es la idea, ahora solo e keda adaptarlo  ;)
1S4ludo

~~

Hola:

Mira ya lo e encontrado, solo habia q leer un poco mas abajo xD


Private Type POINTAPI
    X As Long
    Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Sub Form_Load()
Timer1.Interval = 10
End Sub

Private Sub Label1_Change()
MsgBox "hola"
End Sub


Private Sub Timer1_Timer()
Dim PT As POINTAPI
    GetCursorPos PT
    Label1.Caption = PT.X & "-" & PT.Y
End Sub


Ya esta cada vez q mueva el raton sale un msgbox  ;D

Lo q le faltaba al code de gmf_321 era eso de:

Private Type POINTAPI
    X As Long
    Y As Long
End Type


Esto tb lo puedes adaptar pa cuando haga click y tal... la cosa es hecharle imaginacion xD

1S4ludo

Snort

  Ei gracias tios soys los amos   :-*

Saludos