VB.NET: Générer un bip

Fermé
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 13 sept. 2014 à 18:20
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 14 sept. 2014 à 16:43
Bonjour,

Je programme en vb.net 2010, et j'aimerais générer un bip.
Je veux pouvoir modifier la fréquence et la durée du son, donc la commande Beep() (qui ne marche d'ailleurs pas, rien ne se passe) ne me sert à rien.
J'ai trouvé un code sur internet, mais une erreur était retournée à chaque fois.

Merci de votre aide.

2 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
13 sept. 2014 à 18:38
Bonjour pour voir ce qui ne va pas avec ton code il faudrait le poster.
Voir ici comment bien utiliser la coloration syntaxique.
Signaler la ligne qui bug et retranscrire le message d'erreur entier.

Concernant Beep, chez moi ça marche, qu'as tu essayé?
        System.Media.SystemSounds.Beep.Play()

Il existe aussi
        System.Media.SystemSounds.Asterisk.Play()
        System.Media.SystemSounds.Exclamation.Play()
        System.Media.SystemSounds.Hand.Play()
        System.Media.SystemSounds.Question.Play()

2
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
Modifié par Anonyme209 le 13/09/2014 à 20:17
Bonjour,

moi, rien.
que ce soit seulement avec
Beep()

ou avec
System.Media.SystemSounds.Beep.Play()


Pour ce qui est du code retournant une erreur, il s'agit de celui-là:

Private Declare Function APIBeep Lib "kernel32" Alias _
    "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) _
    As Long

Private Sub Command1_Click()
    Dim frequency As Long
    frequency = CLng(250)
    APIBeep frequency, 500
End Sub


Source: http://www.vb-helper.com/howto_api_beep.html
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
13 sept. 2014 à 20:24
Ok, on voit que c'est un code vb6 et le message d'erreur?

--
0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
Modifié par Anonyme209 le 13/09/2014 à 20:42
PInvokeStackImbalance was detected
"A call to PInvoke function 'Test!Test.Form1::APIBeep' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature."

(Test est le nom du projet dans l'erreur)
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
14 sept. 2014 à 09:56
et
Console.Beep(500, 500)
, ca marche?
0
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 15
14 sept. 2014 à 10:29
rien
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
14 sept. 2014 à 11:38
Apres quelques recherches, il semble que console.Beep se servent du beeper de la carte mère et non des hauts parleurs:
https://docs.microsoft.com/fr-fr/dotnet/api/system.console.beep?redirectedfrom=MSDN&view=netframework-4.8
Mais ça ne semble pas être le cas de System.Media.SystemSounds.Beep.Play
https://docs.microsoft.com/en-us/dotnet/api/system.media.systemsounds.beep?redirectedfrom=MSDN&view=netframework-4.8

Après tu peux essayer de jouer un wav qui fait ton beep, ici une discussion qui en parle (c'est du C#, mais ça ressemble au VB)
https://codes-sources.commentcamarche.net/forum/affich-10032463-jouer-un-son-dans-une-application-mais-ca-ne-marche-pas
0