Visual Basic.NET - Hook para una sola tecla

   
Vista:

Hook para una sola tecla

Publicado por Fran (13 intervenciones) el 12/01/2014 12:02:26
Saludos a todos:

Tengo un programa hecho en VB.NET para reconocer teclas (aunque esté minimizada la ventana,mediante un hook de teclado) y reproducir un sonido según que tecla.

Public Class Form1
Dim iresult As Long
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Private WithEvents kbHook As New KeyboardHook

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

End Sub
Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyDown
iresult = mciExecute("Play C:\sonido1.wav")
End Sub
Private Sub kbHook_KeyUp(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyUp
iresult = mciExecute("Play C:\sonido1.wav")
End Sub
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer


Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean

If ((keyData = Keys.CapsLock) OrElse _
(keyData = Keys.NumLock) OrElse _
(keyData = Keys.Scroll)) Then

KeysLockIndicator.AudioPlay(keyData)
End If

Return MyBase.ProcessCmdKey(msg, keyData)

End Function

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.A Then
iresult = mciExecute("Play C:\sonido1.wav")

End If
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.B Then
iresult = mciExecute("Play C:\sonido2.wav")

End If
End Sub
.........

Con este código consigo que toque la tecla que toque suene el sonido "sonido1.wav",aunque esté minimizada la ventana.

Mi pregunta es ¿cómo consigo que si toco la una tecla distinta suene "sonido2.wav", otra " sonido3.wav".... y así sucesivamente para que cada tecla tenga un sonido aunque esté minimizada la ventana?

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder