c++ - ¿Qué diferencia hay entre WH_KEYBOARD y WH_KEYBOARD_LL?
winapi hook (1)
Meh, no te centres demasiado en el término, no aclara nada. Hay una gran diferencia entre los dos. WH_KEYBOARD_LL instala un enlace que requiere que la devolución de llamada se implemente en su propio programa. Y debe bombear un bucle de mensajes para que Windows pueda hacer la devolución de llamada cuando esté a punto de enviar un mensaje de teclado. Lo que hace que sea muy fácil ponerse en marcha.
WH_KEYBOARD funciona de manera muy diferente, requiere una DLL que se puede inyectar de manera segura en los procesos enganchados. Lo que hace que sea notoriamente difícil ponerse en marcha, inyectar DLL sin afectar un proceso no es fácil. Particularmente en un sistema operativo de 64 bits. Tampoco es cuidar la comunicación entre procesos que pueda necesitar si algún otro proceso necesita saber acerca de la pulsación de tecla. Como un registrador de claves.
La ventaja de WH_KEYBOARD es que tiene acceso al estado del teclado. Que es una propiedad por proceso en Windows. El estado como la disposición activa del teclado y el estado del modificador y las teclas muertas son muy importantes cuando se quiere usar el gancho para traducir las teclas virtuales a las teclas que usted escribe. No puede llamar a ToUnicodeEx () de manera confiable desde un proceso externo.
No puedes balancear un gato sin encontrar el código de ejemplo, Google te dará mucho. Así que asegúrese de usar algo conocido para trabajar si nunca ha escrito un gancho así antes, evitará mucho dolor.
¿Cuál es la diferencia entre el funcionamiento de dos? Para WH_KEYBOARD_LL
leí que instala un procedimiento de WH_KEYBOARD_LL
que supervisa los eventos de entrada de teclado de bajo nivel . ¿Qué se entiende por eventos de teclado de bajo nivel ?