PDA

Ver la Versión Completa : Capturar keystrokes!!!


alehillebrand
24-05-2004, 23:00:22
Hola a todos, quisiera saber con q funcion puedo capturar TODAS las teclas en una aplicacion (incluidas alt + tab y ctrl + alt + del, etc).
Lo implemente en el keydown con el key preview activado pero esas teclas no las puedo capturar, please help.

delphi.com.ar
24-05-2004, 23:07:12
Fíjate si te sirve este hilo:
http://www.clubdelphi.com/foros/showthread.php?t=10522

Con respecto a lo que tu pides, las funciones / herramientas de este hilo requieren que se registren las combinaciones a ser capturadas. Otra opción es crear un Hook de teclado.

Saludos!
Saludos!

roman
24-05-2004, 23:12:41
Otra cosa, recuerda que para captar los modificadores ALT, SHIFT, CTRL se usa el parámetro Shift de los eventos OnMouseDown y OnMouseUp y ten en consideración que combinaciones como las que mencionas muy posiblemente no puedas hacerlo así de sencillo ya que Windows se protege de que tales combinaciones sean capturadas. Algunas podrás capturarlas usando los hooks que te menciona delphi.com.ar pero en Windows 2000/XP olvídate de Ctrl-Alt-Supr.

// Saludos

alehillebrand
24-05-2004, 23:34:59
Gracias por las respuestas, voy a investigar un poco con el tema de hooks, lo q estoy haciendo es q necesito q una aplicacion despliege un formulario q bloquee totalmente la pantalla y capture las teclas de sistema para evitar q me cierren esta aplicacion, todo esto bajo win XP.
Desde ya gracias por la prontitud en las respuestas, se agradeceran mas datos;)

roman
25-05-2004, 03:22:50
voy a investigar un poco con el tema de hooks

Si lo deseas puedes darte una vuelta a mi página, a la unidad hooks.pas (http://www.clubdelphi.com/users/roman/hooks.php) que implementa un hook para inhabilitar las combinaciones típicas, excepto CTRL-ALT-SUPR que en Windows 2000/XP requiere técnicas mucho más complejas.

// Saludos

alehillebrand
26-05-2004, 01:16:59
Estuve probando con los hooks pero no hay caso con el Ctr + Alt + Del, la verdad q me lleno las borlands, si alguien sabe de algun metodo para capturarlas please cuente o sino como alternetiva como puedo hacer para bloquear el teclado, para C# encontre una funcion pero el delphi no encontre la forma de implementarla, Help Please!!!!
Gracias anticipadas

roman
26-05-2004, 04:38:14
para C# encontre una funcion pero el delphi no encontre la forma de implementarla

¿Encontraste una función para capturar CTRL-ALT-SUPR o para bloquear todo el teclado?

De cualquier forma mira, yo de C# no sé nada pero me sorprendería que tal función existiese. ¿No es posible traducir el código a Delphi? ¿Podrías colocar el enlace a donde viste la función?

Por otra parte, ¿no has pensado replantear un poco el problema? A ver, tú quieres evitar que cierren tu aplicación. Un simple

CanClose := false;

en el evento OnCloseQuery lo lograría. La única forma que tendrían de cerrarlo es mediante el administrador de tareas pero puedes usar políticas de grupo para evitar que accedan a éste.

// Saludos

roman
26-05-2004, 04:44:21
Lo olvidaba. Si revisaste mi página habrás visto que tuvo su origen por una componente llamada dWinLock. Esta componente, si bien es de pago, quizá te interese ya que sí tiene la capacidad de inhabilitar CTRL-ALT-SUPR al reescribir el módulo gina.dll que es el encargado de manejar esta combinación de teclas. La componente puedes encontrarla por ejemplo en

http://www.delphi32.com/vcl/5153/

// Saludos