Visual Basic - Este código no funciona

Life is soft - evento anual de software empresarial
   
Vista:

Este código no funciona

Publicado por Fran (9 intervenciones) el 08/12/2013 14:48:25
Saludos a todos:
Tengo este código para que cuando toque la tecla A se reproduzca un sonido pero cuando inicio la aplicación no suena nada.
1
2
3
4
5
6
7
8
9
10
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 Sub Form1_KeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer)
        If Chr(KeyCode) = "A" Or Chr(KeyCode) = "a" Then
            iresult = mciExecute("Play A.wav")
        End If
    End Sub
End Class

He consultado y me han dicho que tengo que llamar a la clase para que funcione, pero no sé como hacerlo.
Espero que puedan ayudarme.
Muchas gracias de antemano.
Saludos.
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
Imágen de perfil de A,H,H

Este código no funciona

Publicado por A,H,H (116 intervenciones) el 08/12/2013 22:06:32
Hola en vez del evento keydown pruébalo dentro del evento keyup

1
2
3
4
5
6
7
8
9
10
11
12
13
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 Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If Chr(KeyCode) = "A" Or Chr(KeyCode) = "a" Then
            iresult = mciExecute("Play A.wav")
        End If
End Sub

Tambjien prueba a poner la propiedad Keypreview del formulario en true
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

Este código no funciona

Publicado por Fran (9 intervenciones) el 08/12/2013 22:37:52
Muchas gracias.
¿Cómo escribo lo del keypreview?
Lo he probado tal como me has escrito pero no se oye nada.(tengo el archivo de audio en la biblioteca de música)
No sé que me falta...
Saludos y muchas gracias.
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

Este código no funciona

Publicado por Fran (9 intervenciones) el 08/12/2013 22:56:25
Ya he encontrado lo del KeyPreview pero no suena nada.La aplicación es de tipo Windows Form¿eso afecta en algo?
Saludos y ojalá pueda conseguirlo.
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 A.H.H

Este código no funciona

Publicado por A.H.H (116 intervenciones) el 10/12/2013 19:31:03
Hola el código anterior que te expuse es para visual basic 6.0
Que estas usando .NET??
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

Este código no funciona

Publicado por Fran (9 intervenciones) el 10/12/2013 19:33:27
Estoy usando Visual Basic 2010.¿hay algún paso adicional que me haya podido saltar?
Gracias
Saludos.
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 A.H.H

Este código no funciona

Publicado por A.H.H (116 intervenciones) el 11/12/2013 19:38:06
Hola en visual basic 2010 esto debería servirte

1
2
3
4
5
6
7
8
9
10
11
12
13
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 Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If Chr(e.KeyCode) = "A" Then
            iresult = mciExecute("Play A.wav")
 
        End If
    End Sub
End Class

No hace falta poner la a minuscula para comparar lo he probado y a mi me funciona con las dos a A

EL ARCHIVO DE AUDIO PONLO EN LA RUTA CORRECTA
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

Este código no funciona

Publicado por Fran (9 intervenciones) el 12/12/2013 14:49:12
Muchísimas gracias.Por fin va!!!!!
Saludos y muchas gracias de nuevo.
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