Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: JoseluCross en 2 Mayo 2016, 02:10 am



Título: [C] Interrupcion de teclado en C
Publicado por: JoseluCross en 2 Mayo 2016, 02:10 am
Hola a todos, como parte de un trabajo de la universidad el profesor nos ha pedido hacer una sopa de letras, la sopa ya la hicimos pero ahora nos pide que se cierre si se pulsa Escape en cualquier momento. He estado probando con getchar() pero me obliga a pulsar retorno de carro y no me sirve. He leido que existe una funcion llamada getch() de conio.h pero ni el programa está en windows ni nos dejan usar librerias no estandar.

Agradecería mucho la ayuda ya que el profesor se niega a decirnoslo y me estoy volviendo un poco loco. No hace falta que me digan exactamente que hacer (tampoco os lo voy a impedir  :P), me basta con hacerme una idea de por donde van los tiros. Lo mas importante es que baste con el boton para cerrarse, sin tener que pulsar retorno de carro. No descarto la posibilidad que no se pueda a este nivel de C y el profesor lo haya hecho para que no podamos... en fin. Muchas gracias por su tiempo.


Título: Re: [C] Interrupcion de teclado en C
Publicado por: xiruko en 2 Mayo 2016, 03:24 am
Hola,

Citar
No descarto la posibilidad que no se pueda a este nivel de C y el profesor lo haya hecho para que no podamos...

Sí que se puede, y de hecho hay varias maneras de hacerlo. De momento se me ocurren dos:

La primera es usando la función GetAsyncKeyState (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx).

La segunda es haciendo un hook global al teclado. Tienes un ejemplo aquí http://stackoverflow.com/questions/9149600/global-keyboard-hooks-in-c (http://stackoverflow.com/questions/9149600/global-keyboard-hooks-in-c).

Ambas maneras están muy documentadas y encontrarás muchos ejemplos en Google.

Saludos!


Título: Re: [C] Interrupcion de teclado en C
Publicado por: class_OpenGL en 2 Mayo 2016, 03:35 am
Que yo sepa, la librería de Windows no es estándar xD