ayuda explicaxion de hook
alguno me podria ayudar como hacer un hook que solo me capture el clic derecho ctrl+p y ctrl+g
|
Hola, en este hilo puedes encontrar la respuesta:
https://www.clubdelphi.com/foros/showthread.php?t=45462 Saludos |
En una primera aproximación podemos escribir el siguiente código que responde a las pulsaciones y en el orden impuesto:
Ctl + RBUTTON + G ó RBUTON + Ctl + G y Ctl + RBUTTON + P ó RBUTON + Ctl + P
Saludos. |
Cita:
quisiera saber donde llamar el procedimiento HotKey lo que queda registrado en RegisterHotKey |
La API RegisterHotKey registra una ventana, en este caso nuestro formulario, para que Windows le envíe un mensaje WM_HOTKEY. Se puede registrar cualquier tecla con un modificador (MOD_ALT, MOD_CONTROL, MOD_SHIFT ó MOD_WIN) en este caso he usado MOD_CONTROL. No puedes registrar botones del ratón. Para recibir el mensaje debes implementar un procedimiento que lo haga, en este caso lo llamé HotKey y se encarga de procesar el mensaje WM_HOTKEY. Cada tecla registrada tiene un ID con el que la registras, en este caso 0 para 'P' y 1 para 'G'. HotKey se entera del ID porque le llega en Message.WParam, con lo que ya sabemos que tecla lo disparó.
Para controlar si se pulsó el botón derecho del ratón usamos GetAsyncKeyState(VK_RBUTTON). Al realizar una operación and binaria con $8000 sabremos si el botón esta pulsado pues en ese caso el resultado será distinto de 0. Para terminar, debes anular el registro de las teclas con la API UnregisterHotKey, una llamada por cada tecla registrada usando el identificador que usaste al registrarlas. Esto se puede hacer al finalizar el formulario o cuando ya no precises que tu formulario siga respondiendo al mensaje WM_HOTKEY. Este sería el código completo de la Unit:
Yo he utilizado un sonido para mostrar que se detectan las combinaciones de teclas + RBUTTON pero tu deberás poner el código que te parezca. Saludos. |
La franja horaria es GMT +2. Ahora son las 01:48:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi