Fonction Beep en C

Fermé
Maknash Messages postés 643 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 15 juillet 2013 - 28 oct. 2009 à 21:53
Naheulf Messages postés 287 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 19 février 2024 - 21 nov. 2010 à 21:38
Bonjour,

Tout d'abord, je dois devenir fou car je croyais avoir déjà posté ce sujet sur CCM mais je n'arrive pas à remettre la main dessus, j'imagine donc que j'ai rêvé et que je n'ai jamais posté ça ici, donc s'il existe déjà ce topic créé par mois il y a quelques mois, alors veuillez m'excuser.

Mon problème est qu'en fait j'aimerais bien faire un petit truc avec les bips en langage C (avec la fonction Beep).
Je sais comment utiliser cette fonction seulement je n'arrive pas à faire biper mon PC et ce, même avec des \a dans les printf...
J'ai essayé de suivre les 2 liens suivants sur CCM : Désactiver les bips du système et aussi Désactiver le bip du haut-parleur interne (Win 2000/XP/Vista).
J'ai donc fais ceci :
Démarrer / Exécuter / "regedit"
J'ai été dans HKEY_CURRENT_USER\Control Panel\Sound
Ensuite, j'ai créé une nouvelle valeur chaîne nommée Beep avec comme valeur yes

Et ça ne marche pas, j'ai donc fait le deuxième tuto à l'envers aussi :
Fenêtre DOS :
net start beep
Qui me génère cette erreur :
"L'erreur système 1058 s'est produite.

Le service ne peut pas être démarré parce qu'il est désactivé ou qu'aucun périphérique activé ne lui est associé."
Et ensuite je fais la deuxième commande :
sc config beep start= enabled
Et ça me génère cette erreur :
invalid start= field
Modifies a service entry in the registry and Service Database.
SYNTAX:
sc <server> config [service name] <option1> <option2>...
CONFIG OPTIONS:
NOTE: The option name includes the equal sign.
 type= <own|share|interact|kernel|filesys|rec|adapt>
 start= <boot|system|auto|demand|disabled>
 error= <normal|severe|critical|ignore>
 binPath= <BinaryPathName>
 group= <LoadOrderGroup>
 tag= <yes|no>
 depend= <Dependencies(separated by / (forward slash))>
 obj= <AccountName|ObjectName>
 DisplayName= <display name>
 password= <password>


Pouvez-vous me dire ce qui coince SVP? Surtout qu'à l'époque ça fonctionnait...
Je vous remercie d'avance

PS : Je précise que je suis sur mon portable

3 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
28 oct. 2009 à 22:35
Tu as essayé ceci:
#include <stdio.h> 
 
int main(void) 
{ 
    beep(440,1000); 
     
    printf("\nAppuyez sur une touche..." ); 
    getch(); 
     
    return 0; 
}


Normalement sous windows avec dev-cpp ça fonctionne, par contre sous linux avec gcc ça ne marche pas, beep() n'étant apparemment pas un standard ou quelque chose comme ça.
1
Maknash Messages postés 643 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 15 juillet 2013 184
28 oct. 2009 à 22:48
Merci de ta réponse mais Code::Blocks me dit qu'il y a une erreur avec le beep et une erreur avec le getch.

En effet, il faut insérer windows.h et myconio.h et mettre une majuscule au b de beep donc Beep.

J'ai refais ton code mais ça ne fonctionne pas vu que les bips ne fonctionnent plus sur ma machine :

#include <stdio.h>
#include <windows.h>
#include <myconio.h>

int main(void)
{
    Beep(440,1000);

    printf("\nAppuyez sur une touche..." );
    getch();

    return 0;
}
0
Naheulf Messages postés 287 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 19 février 2024 113
21 nov. 2010 à 21:38
Tu met juste

#include <stdio.h>
#include <windows.h>

int main(void)
{
    Beep(440,1000);

    return 0;
}

et ça marche.. (du moins sur mon ordinateur...)
1
Maknash Messages postés 643 Date d'inscription lundi 10 septembre 2007 Statut Membre Dernière intervention 15 juillet 2013 184
2 nov. 2009 à 12:19
A mon avis ça n'a strictement rien à voir, mais j'utilise une carte son Realtek il y a donc un programme qui configure ma carte son (dans le panneau de configuration).
Je ne pense pas qu'il y ai de rapport avec ce programme mais bon, je le précise quand même
0