Visual Basic.NET - Registro de combinación de teclas junto a evento Keydown

 
Vista:
sin imagen de perfil

Registro de combinación de teclas junto a evento Keydown

Publicado por Fran (13 intervenciones) el 01/05/2014 20:37:55
Saludos a todos:
Adjunto el programa hecho en VB.NET para una mejor comprensión del problema.
Tengo un evento keydown el cual registra las pulsaciones de teclas.
A ese evento le añado la instrucción de que cuando se pulsa una tecla suene un sonido.
Bien,mi pregunta es:
Por ejemplo;
Si yo pulso A,sonará sonido1.wav
¿Cómo hago para que cuando pulse Ctrl + A suene sonido2.wav y cuando SOLO pulse la tecla A suene sonido1.wav?
Espero haberme explicado bien.
Saludos y 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
sin imagen de perfil

Registro de combinación de teclas junto a evento Keydown

Publicado por Pico (167 intervenciones) el 01/05/2014 22:07:21
Te has explicado lo suficientemente bien como para que te entienda yo, y seguramente con eso sea suficiente.

No tienes un evento keydown, tienes un hook low level keyboard, que no es lo mismo. A la función de hook que le has puesto le llegan tres parámetros, y lparam es un puntero a una estructura con más información sobre teclas pulsadas. Pero para comprobar el estado de cualquier tecla usa GetKetState. Le pasas el virtual-key code de la tecla que quieres comprobar y si el resultado es mayor que 32.767 es que está presionada esa tecla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Registro de combinación de teclas junto a evento Keydown

Publicado por Fran (13 intervenciones) el 02/05/2014 13:32:32
Hola Pico:
Muchas gracias por responder.
Tienes razón,me he equivocado en lo del keydown.Gracias por la corrección.
Una pregunta: ¿Con la función getkeystate se puede hacer lo que decía en el anterior mensaje?
Cuando pulse Ctrl + A deberá sonar sonido2.wav y cuando SOLO pulse la tecla A deberá sonar sonido1.wav,de tal forma que suene un sonido diferente cuando pulse la tecla sola a cuando la pulse junto a una tecla como control o alt.
Saludos y muchas gracias.
Fran
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Registro de combinación de teclas junto a evento Keydown

Publicado por Pico (167 intervenciones) el 02/05/2014 17:53:30
Sí.

Como no me deja poner sólo sí voy a poner algo más.

Lo que tienes que hacer es que si GetKeyState(VK_CONTROL) > 32767 tocar sonido2 si no tocar sonido1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose Duran

Registro de combinación de teclas junto a evento Keydown

Publicado por Jose Duran (12 intervenciones) el 02/05/2014 23:10:13
Hola amigo, no se si ya resolviste tu problema pero es mas facil que utlizes el evento keydown del formulario

te copio el ejemplo segun tu codigo

1
2
3
4
5
6
7
8
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        If e.Modifiers = Keys.Control AndAlso e.KeyCode = Keys.A Then
            'PON EL CODIGO PARA QUE TE REPRODUZA EL SONIDO 2 AQUI'
            My.Computer.Audio.Play(ResourceFilePathPrefix & "sonido2.wav")
        ElseIf e.KeyCode = Keys.A Then
            My.Computer.Audio.Play(ResourceFilePathPrefix & "sonido1.wav")
        End If
    End Sub

Pruebalo y comentanos.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Registro de combinación de teclas junto a evento Keydown

Publicado por Fran (13 intervenciones) el 06/05/2014 22:26:43
Saludos y gracias a los 2 por sus respuestas.
Gracias,José.Este código me viene perfecto para lo que quiero.
Muchas gracias.
Fran
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar