Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   bloquear teclas (https://www.clubdelphi.com/foros/showthread.php?t=60246)

cmm07 25-09-2008 16:46:32

bloquear teclas
 
Hola, estoy creando una aplicacion que lo que hace es cubrir toda la pantalla y crear una especie de protector, llevo casi todo listo, uno de las ultimas cosas que me falta es el bloqueo de teclas,¿Como puedo bloquear teclas?, todos los derivados de la tecla de windows , Ctrl+Alt+Spr y otras teclas especiales, no se me ocurre como hacerlo, de seguro que a ti sí......gracias...

54LU2

Lepe 25-09-2008 17:31:19

A mi no se me ocurre, pero sé de alguien que sí se le ocurrió es el componente Hooks de nuestro moderador roman.

Echa una visual a toda la web que no tiene desperdicio.

Saludos

cmm07 25-09-2008 17:42:37

gracias lo revisé pero coloco la instruccion y no me sucede nada, coloco :

hooks.LockKey(lkAltTab, False);
y tambien hice la prueba con
hooks.LockKey(lkAltTab, True);
en OnCreate y en OnActivate pero no pasa nada....

¿que puede ser?

roman 25-09-2008 17:50:24

1 Archivos Adjunto(s)
Por lo que mencionas de cubrir toda la pantalla, me da la impresión de que lo que buscas lo puedes lograr con algo mucho más eficiente que bloquear las teclas, que son los objetos Desktop, de los cuales hice mención aquí.

Dejo como adjunto el mismo ejemplo que pongo allá.

// Saludos

.

roman 25-09-2008 18:00:15

Cita:

Empezado por cmm07 (Mensaje 316298)
gracias lo revisé pero coloco la instruccion y no me sucede nada, coloco :

hooks.LockKey(lkAltTab, False);
y tambien hice la prueba con
hooks.LockKey(lkAltTab, True);
en OnCreate y en OnActivate pero no pasa nada....

¿que puede ser?

¿Has colocado la llamada a SetHook al inicio?

// Saludos

cmm07 26-09-2008 01:44:39

gracias eso lo que me faltaba eñl SetHook te lo agradesco demasiado, y por lo de tu ejemplo esta buenisimo, pero yo ya tengo el mio y no me gustaria cambiarlo por otro pero igual muy util para otras personas, gracias por todo-....

54LU2

cmm07 30-09-2008 17:23:58

Hola, se me ha surgido casi el mismo problema pero con la tecla Ctrl+Alt+Supr, como desactivo estas teclas:

Ctrl+Alt+Supr y Ctrl+Alt+.
y cuand salga de mi applicacin vuelvan a activarse

gracias.

seoane 30-09-2008 20:21:25

Bloquear Ctr+Alt+Supr no es una tarea sencilla. Una solución es la que te dio roman, que no bloquea la combinación de teclas pero como el "Administrador de tareas" queda oculto en el otro Desktop puede servir.

Otra posible solución es usar la entrada del registro DisableTaskMgr:
Código:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000001

De esta manera se le mostrara un bonito mensaje al usuario cada vez que pulse la famosa combinación de teclas informándole de que no tiene permiso para usar el administrador de tareas.

Y por ultimo, si de verdad quieres bloquear la combinación de teclas puedes crearte una dll GINA (esto no es algo sencillo) o puedes inyectarte a lo bestia en el proceso winlogon.exe (aquí un ejemplo).

cHackAll 01-10-2008 01:49:56

Cita:

Empezado por seoane (Mensaje 317281)
...o puedes inyectarte a lo bestia en el proceso winlogon.exe...

Por qué la brutalidad amigo seoane? :D

Código Delphi [-]
SendMessage(FindWindow(nil, 'Administrador de tareas de Windows'), WM_SYSCOMMAND, SC_CLOSE, 0);

Saludos

seoane 01-10-2008 08:04:04

Cita:

Empezado por cHackAll (Mensaje 317333)
SendMessage(FindWindow(nil, 'Administrador de tareas de Windows'), WM_SYSCOMMAND, SC_CLOSE, 0);

:confused: ¿Y esto cuando lo usarias? cada vez que alguin pulsara Ctr+Alt+Supr.

Cita:

Por qué la brutalidad amigo seoane? :D
:D Lo mio siempre fue matar moscas a cañonazos

roman 01-10-2008 09:48:50

Cita:

Empezado por seoane (Mensaje 317281)
Otra posible solución es usar la entrada del registro DisableTaskMgr:
Código:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000001

De esta manera se le mostrara un bonito mensaje al usuario cada vez que pulse la famosa combinación de teclas informándole de que no tiene permiso para usar el administrador de tareas.

Pues sí, nunca me ha quedado claro porque la gente no deshabilita el administrador de tareas si tanto les preocupa.

Cita:

Empezado por seoane (Mensaje 317281)
Y por ultimo, si de verdad quieres bloquear la combinación de teclas puedes crearte una dll GINA (esto no es algo sencillo) o puedes inyectarte a lo bestia en el proceso winlogon.exe (aquí un ejemplo).

De bestia no tiene nada, a mi me parece una joyita :)

// Saludos

cmm07 01-10-2008 13:11:10

gracias, a todos, ya lo solucioné, colocando un timer a un intervalo de 100 milisegundos con la siguiente instruccion:

SendMessage(FindWindow(nil, 'Administrador de tareas de Windows'), WM_SYSCOMMAND, SC_CLOSE, 0);

al hacer clic Ctrl+Alt+Supr este aparece y desaparece con un tiempo de 100 ms
gracias a toooodooosss, si necesitan algo intentaré ayudarlos..

gracias 54LU2


La franja horaria es GMT +2. Ahora son las 06:04:12.

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