Hola a todos en el foro, estoy diseñando una aplicación en vb.net
2005 y necesito capturar la pulsación de algunas teclas, así como una
combinación de las mismas.
Encontré la forma de sobre escribir el método WndProc para acceder a
la cola de mensajes que van hacia la ventana, pero tal parece que no lo
estoy haciendo de la forma correcta. El código que estoy utilizando es
el siguiente:
Private WM_KEYDOWN As Integer = &H100
Private WM_KEYUP As Integer = &H101
Private Const VK_ESC As Integer = &H1B
Protected Overrides Sub WndProc(ByRef m As
System.Windows.Forms.Message)
Dim keycode As Keys = CType(m.WParam.ToInt32(), Keys) And
Keys.KeyCode
Select Case m.Msg
Case WM_KEYDOWN
Debug.Print ("Tecla Presionada")
If keycode = VK_ESC Then
Debug.Print ("Teclas Escape Pulsada")
End If
Case WM_KEYUP
Debug.Print ("Tecla Liberada")
End Select
MyBase.WndProc(m)
End Sub
Sin embargo esto no funciona, ya que el valor de la variable m.Msg así
como el de variable m.WParam siempre son diferentes de los valores
esperados para un evento de pulsación de tecla. Esto es, jamás
concuerdan con las constantes WM_KEYDOWN, WM_KEYUP ó VK_ESC.
Si alguien tiene alguna idea sobre lo que pueda estar causando este
inconveniente ó conoce alguna forma alterna para hacer la captura de
las teclas le agradeceré me lo haga saber.
De antemano gracias.
Saludos,
Gonzalo.
Leer las respuestas