PDA

Ver la versión completa : Codigo que bloquee ciertas teclas con .NET



rafaeluru
12-10-2008, 18:31
Hola a todos.
Mi problema es que necesito hacer una aplciación que entre otras cosas debe bloquear ciertas teclas del teclado pero a nivel de Sistema, osea yo bloqueo la letra "M" y esta letra tiene que quedar bloqueada para todas las aplicación de windows. El tiempo de permanecia del bloqueo lo da un temporizador. Se que para esto debo usar la API de windows, pero no se que método usar ni como. Buscando encotré esto:

Declare Function BlockInput Lib "User32" (ByVal fBlockIt As Boolean) As Boolean

fBlockIt = true >> bloquea
fBlockIt = false >> desbloquea

el problema con este método es que bloquea todas las entradas, teclado y mouse y no me sirve ya que solo debo bloquear algunas teclas del teclado. Aclaro que las teclas que deseo bloquear corresponden a la parte alfabética del teclado. No me interesa bloquear teclas como Ctrl, Alt, Shift, etc.

Existen programas que relizan este trabajo, asi que poder se puede, jeje. Solo necesito saber como.

Bueno espero que alguien pueda darme una mano con esto y desde ya Muchas gracias por todo.

hystd
14-10-2008, 17:58
Buenas! Lo que debes hacer es interceptar todos los eventos del teclado. Para ello instala un gancho en el sistema que intercepte el hook WH_KEYBOARD. Analizas la tecla recibida, y según sea el caso, dejas pasar el control al siguiente gancho de la cadena o no.

Usa las funciones SetWindowsHookEx, y CallNextHookEx para ello:

http://msdn.microsoft.com/en-us/library/ms644990(VS.85).aspx

Un saludo.

rafaeluru
23-10-2008, 16:48
Hola, como estas. Gracias por contestar hystd.
Estube buscando algo de información ecerca de lo que me dijiste ya que no se lo que es un hook, y todabia no logro entenderlo bien jeje. En cuanto a los métodos que me acosejaste que use, en el msdn no entiendo nada, y buscando encontré un ejemplo pero no lo puedo implementar.

http://allapi.mentalis.org/apilist/35AD48797A780091740CBCF14EBC094D.html
sacado de:
http://www.solotuweb.com/fs~id~9031.html

Por eso te agradecería se puedes mandarme algún ejemplo o algo por el estilo.

Nuevamente te agradezco mucho por contestarme ya que no muchos tienen conocimiento acerca de este tema. Gracias