Bloquear teclas

23/01/2005 - 14:57 por Julio Guevara | Informe spam
Sera posible bloquear la tecla Impr Pant (Prt Sc). Quiero
hacerlo desde un pequenio exe en modo silencioso

Saludos y Gracias
Julio Guevara

Preguntas similare

Leer las respuestas

#1 Marino Posadas
24/01/2005 - 00:02 | Informe spam
Hola Julio

No es posible hacer eso en .NET hasta donde yo sé. PrintScreen es un
característica básica de Windows, y tendrías que capturar una llamada del
sistema, a muy bajo nivel, lo que siempre es delicado. No es nada relativo a
.NET, por tanto. Piensa que el resto de aplicaciones sí pueden necesitar de
su uso. La solución seria un "hook" que registrara un nuevo receptor de esa
tecla. Además, si se tratase de una aplicación Direct3D la tecla no
funciona.

¿Cuál es el efecto que buscas?


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net

"Julio Guevara" escribió en el mensaje
news:1a9801c50153$754533b0$
Sera posible bloquear la tecla Impr Pant (Prt Sc). Quiero
hacerlo desde un pequenio exe en modo silencioso

Saludos y Gracias
Julio Guevara
Respuesta Responder a este mensaje
#2 Julio Guevara
25/01/2005 - 18:20 | Informe spam
Gracias Marino, lo que pasa es que estoy mostrando
imagenes de planos confidencias y quisiera evitar las
capturas. Podrias darme una referencia sobre como hacer
esto a bajo nivel.

Saludos
Julio J. Guevara


Hola Julio

No es posible hacer eso en .NET hasta donde yo sé.


PrintScreen es un
característica básica de Windows, y tendrías que capturar


una llamada del
sistema, a muy bajo nivel, lo que siempre es delicado. No


es nada relativo a
..NET, por tanto. Piensa que el resto de aplicaciones sí


pueden necesitar de
su uso. La solución seria un "hook" que registrara un


nuevo receptor de esa
tecla. Además, si se tratase de una aplicación Direct3D


la tecla no
funciona.

¿Cuál es el efecto que buscas?


Saludos cordiales
Marino Posadas
MVP Visual C#

www.ElAveFenix.net

"Julio Guevara" escribió en el


mensaje
news:1a9801c50153$754533b0$
Sera posible bloquear la tecla Impr Pant (Prt Sc).




Quiero
hacerlo desde un pequenio exe en modo silencioso

Saludos y Gracias
Julio Guevara




.

Respuesta Responder a este mensaje
#3 pepe
25/01/2005 - 22:43 | Informe spam
Porque no capturar el evento keydown o keypress, y
validas algo asi:

if(e.KeyData == Keys.PrintScreen)
{
e.Cancel = true;
}
Respuesta Responder a este mensaje
#4 Octavio Hernandez
25/01/2005 - 23:24 | Informe spam
Pepe,

Yo lo pensé también e hice la prueba (poniendo KeyPreview a true en el form,
y programando el KeyDown). Nada - a la aplicación esa tecla no llega.
También intenté redefiniendo Process_CmdKey(), etc. sin éxito. Es lo que
dice Marino, es una tecla de sistema que tiene tratamiento especial a bajo
nivel.

Sí encontré una referencia (en VB.NET, pero eso es lo de menos) de cómo
programar un hook en .NET (claro, con mucho interop):

http://www.codeguru.com/columns/VB/...php/c4831/

Slds - Octavio

"pepe" escribió en el mensaje
news:098901c50326$f343e200$
Porque no capturar el evento keydown o keypress, y
validas algo asi:

if(e.KeyData == Keys.PrintScreen)
{
e.Cancel = true;
}
Respuesta Responder a este mensaje
#5 Marino Posadas
26/01/2005 - 15:01 | Informe spam
Efectivamente, esa sería la única forma, -gracias por el enlace, Octavio- y
eso siempre teniendo sumo cuidado de dejar las cosas como estaban al
principio, claro.


Saludos,
Marino
www.ElAveFenix.net

"Octavio Hernandez" escribió en el mensaje
news:
Pepe,

Yo lo pensé también e hice la prueba (poniendo KeyPreview a true en el
form, y programando el KeyDown). Nada - a la aplicación esa tecla no
llega. También intenté redefiniendo Process_CmdKey(), etc. sin éxito. Es
lo que dice Marino, es una tecla de sistema que tiene tratamiento especial
a bajo nivel.

Sí encontré una referencia (en VB.NET, pero eso es lo de menos) de cómo
programar un hook en .NET (claro, con mucho interop):

http://www.codeguru.com/columns/VB/...php/c4831/

Slds - Octavio

"pepe" escribió en el mensaje
news:098901c50326$f343e200$
Porque no capturar el evento keydown o keypress, y
validas algo asi:

if(e.KeyData == Keys.PrintScreen)
{
e.Cancel = true;
}




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida