2010-07-17 11 views
5

¿Cómo puedo detectar uno o una combinación de trazos de teclas en ANSI C y/o con Win32 SDK?¿Cómo puedo detectar uno o una combinación de golpes de teclas en C?

Por ejemplo: ¿cómo puedo detectar CTRL + ALT + SUPR se presionó?

Proporcione algún código fuente o cualquier enlace web.

Tenga en cuenta que, estoy utilizando el mecanismo de sondeo, no el evento.

Necesito hacerlo en el modo de consola win32.

+1

Es posible que no pueda detectar CTRL + ALT + DEL desde una aplicación de espacio de usuario. Es detectado y actuado por un controlador de modo kernel. Tendría que escribir un controlador de modo kernel para interceptar esa combinación. La mayoría de las otras combinaciones de teclas deben ser detectables en el espacio de usuario según el método dado en la respuesta de Eli. –

+0

@Amardeep: no estoy seguro de que Autohotkey no pueda interceptar CTRL + ALT + DEL. Si puede, entonces seguramente es más fácil que escribir un controlador en modo kernel –

+1

@Eli - ¿Está seguro de que no instala ni altera un kmd? La seguridad de inicio de sesión de Windows se vería comprometida si ctrl-alt-del pudiera ser interceptado por una aplicación de espacio de usuario sin derechos de administrador. Creo que es posible detectar la combinación de teclas, pero probablemente no antes de que el kmd ya haya actuado sobre ella. –

Respuesta

1

Con ANSI C es imposible, ya que ANSI C no define ningún método para acceder al teclado de esta manera. La función de nivel más bajo en la que toma la entrada del usuario es getc que devuelve un carácter después de haber sido ingresado en stdin y se ha presionado ENTER.

En cuanto a la API Win32, de hecho esto se puede hacer. En la función de manejo de mensajes (WndProc) debe mirar los mensajes WM_CHAR. Los modificadores lo ayudarán a ver si se presionan CTRL y SHIFT.


P.S. solo un pensamiento, tal vez lo que estás buscando es una herramienta como Autohotkey?

+0

Necesito trabajar con main() y no con WinMain(). ¿Me puede dar alguna solución? – anonymous

Cuestiones relacionadas