[AYUDA] Mouse Hook

Iniciado por ignorantev1.1, 21 Marzo 2013, 21:53 PM

0 Miembros y 2 Visitantes están viendo este tema.

ignorantev1.1

Buenas, pues estoy haciendo una aplicación de la que ocupo capturar clicks del mouse en otra aplicación, casi todo bien, ya que pretendo realizar la captura cuando ambos botones del mouse sean presionados al mismo tiempo, algo así como "WM_LBUTTONDOWN & WM_RBUTTONDOWN", pero no me funciona. ¿Alguna idea?

Saludos y gracias.

x64core

Cita de: ignorantev1.1 en 21 Marzo 2013, 21:53 PM
Buenas, pues estoy haciendo una aplicación de la que ocupo capturar clicks del mouse en otra aplicación, casi todo bien, ya que pretendo realizar la captura cuando ambos botones del mouse sean presionados al mismo tiempo, algo así como "WM_LBUTTONDOWN & WM_RBUTTONDOWN", pero no me funciona. ¿Alguna idea?

Saludos y gracias.

capturar ambos WM_LBUTTONDOWN, WM_RBUTTONDOWN, luego comprobar por MK_RBUTTON y MK_LBUTTON ambos esten presionados también.

ignorantev1.1

A ver:

Yo uso:

Código (vb) [Seleccionar]

Private function MSProc(byval nCode as long, byval wParam as long, byval lParam as long) as long
if wParam = WM_LBUTTONDOWN then
'ETC, ETC
end if


¿Cómo va el tuyo?

¡Saludos y gracias por tu respuesta!

raul338

Quizas sea medio tonto jeje, pero probaste usando

If wParam = WM_LBUTTONDOWN AND WM_RBUTTONDOWN THen...

ignorantev1.1

Sí, Raul338, ya lo había considerado, pero no va.  :-\

Saludos.

x64core

Cita de: ignorantev1.1 en 21 Marzo 2013, 23:12 PM
A ver:

Yo uso:

Código (vb) [Seleccionar]

Private function MSProc(byval nCode as long, byval wParam as long, byval lParam as long) as long
if wParam = WM_LBUTTONDOWN then
'ETC, ETC
end if


¿Cómo va el tuyo?

¡Saludos y gracias por tu respuesta!



    If wParam = WM_LBUTTONDOWN Then
        If GetAsyncKeyState(MK_RBUTTON) Then
            Debug.Print "ok"
        End If

el mensaje fue WM_LBUTTONDOWN luego comprueba directamente el estado del otro boton del mouse, asi que
debes detectar ambos WM_LBUTTONDOWN  y WM_RBUTTONDOWN y luego MK_RBUTTON y MK_LBUTTON.

ignorantev1.1

Pues me va ¡de pelos!  ;D

Nunca consideré la función "GetAsyncKeyState" (En realidad no sabía que existía).

Muchas gracias, carnales.

Elemental Code

Async key state es una api y no es hook  :-\

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

BlackZeroX

Cita de: Elemental Code en 22 Marzo 2013, 19:53 PM
Async key state es una api y no es hook  :-\

Nadie dijo tal cosa...

Dulces Lunas!¡.
The Dark Shadow is my passion.

ignorantev1.1

Misma burra, nomás que revolcada:

Voy a finalizar la aplicación (la que pone los hooks), antes de que finalice doy por terminado el hook del mouse:

Código (vb) [Seleccionar]
UnhookWindowsHookEx(msHook)

Después que "finaliza" la aplicación, la función que procesa el hook sigue funcionando lo cual provoca que se "frezee" Windows (hasta no cerrar el IDE de visual basic) o se cierra el IDE por si sólo. (porque no es todavía una aplicación, lo estoy corriendo del IDE). Para probar "mi teoría" puse "debug.print "Hola, sigo funcionando aún despues de hacer unhook ;)", y sí, el mensaje sigue apareciendo aún después de detener el programa:

¿Saben de alguna forma de terminar con el hook o manejarlo de tal manera que no suceda ésto?

Perdonen, saludos y gracias.