IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Avertissement sonore


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Avertissement sonore
    Salut à tous. Je développe actuellement un petit programme en C sous Windows XP. Dans ce dernier il est question de mots de passe à introduire et j'aimerais que lorsqu'un utilisateur entre un mauvais mot de passe, un avertissement sonore se fasse. (Beep, ou éventuellement un son du systeme). Quelqu'un peut il m'indiquer la fonction qui le permet ?
    Enfin, je recherchais hier une fonction qui lise une chaine de caractères sans écho. On m'a donné une fonction qui lisait UN caractère entré au clavier, effectivement sans écho. J'ai demandé s'il existait une fonction semblable pour les chaines, et on m'a répondu de parcourir la chaine jusque \0. Aussi pensai je que je m'étais mal exprimé. Je voudrais une fonction non pas qui lise une chaine de caractères déjà stockée en mémoire, mais bien qui lise une chaine de caractères entrée au clavier ans écho et non pas un seul caractère. Un scanf("%s", &machaine); mais sans écho quoi... Cela existe t il ?

    Merci d'avance

    Michel

  2. #2
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Bonjour,
    Pour ta premiere question je pense pouvoir te repondre
    Je sais que sous unix, si tu fais

    Cela te fais un beep .. a tester sous windows ..
    Pour ce qui est de ta deuxieme question .. je ne connais pas de fonction faisant ce que tu cherches

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Merci bcp
    Je vais tester la fonction de beep sous windows tout de suite. En ce qui concerne la fonction de lecture au clavier sans écho, je vais me servir de celle qu'on m'a passée, et concaténer dans une chaine tous les caractères entrés jusqu'a ce qu'il y aie le caractère 'backslah r' (retour charriot) et ca ira comme ca ;=)

    Merci encore

    Michel

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut SUPER
    Merci à toi, le beep fonctionne également sous windows

  5. #5
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut Re: SUPER
    Citation Envoyé par mick030118
    Merci à toi, le beep fonctionne également sous windows
    De rien
    Content d'avoir pu t'aider

    Bon dimanche
    PS : n'oublie pas le bouton resolu

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par piff62
    Pour ta premiere question je pense pouvoir te repondre
    Je sais que sous unix, si tu fais
    Cela te fais un beep .. a tester sous windows ..
    L'effet de '\a' n'est pas portable. La norme dit que c'est le caractère 'attention'. et qu'il peut produire un effet visuel ou sonore, mais rien de l'y oblige.

    Par contre, même si la sortie est bufferisée, son traitement est immédiat. Il n'est donc pas nécessaire de l'inclure dans une ligne ni de forcer la sortie avec stdout.

    Dans la pratique, sous Windows, ça peut faire un beep si il n'y a pas de carte son installée et que le haut parleur interne du PC est branché, sinon, ça peut faire un 'ding' si la carte son est correctement configurée, que les hauts parleurs sont branchés, sous tension si ils sont actifs... Bref, avant de dire ça marche pas, il y a pas mal de choses à vérifier...
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Avertissement sonore
    Citation Envoyé par mick030118
    Enfin, je recherchais hier une fonction qui lise une chaine de caractères sans écho. On m'a donné une fonction qui lisait UN caractère entré au clavier, effectivement sans écho. J'ai demandé s'il existait une fonction semblable pour les chaines, et on m'a répondu de parcourir la chaine jusque backslash0.
    Alors tu peux appeler plusieurs fois cette fonctions jusqu'au '\n', mais attention il faut gérer la correction, c'est à dire le BASCKSPACE ('\b') et ajouter le 0 final à la main...
    Aussi pensai je que je m'étais mal exprimé. Je voudrais une fonction non pas qui lise une chaine de caractères déjà stockée en mémoire, mais bien qui lise une chaine de caractères entrée au clavier ans écho et non pas un seul caractère. Un scanf("%s", &machaine); mais sans écho quoi... Cela existe t il ?
    Ca existe, mais ce n'est pas portable (et obsolète, je crois): getpass().

    Au fait, il est déconseillé d'utiliser scanf(), surtout si on ne sait pas s'en servir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       scanf ("%s", machaine);
    Et là on a un magnifique trou de sécurité. On peut améliorer comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       char line[32+1];
       scanf ("%32s", machaine);
    mais la maintenance est infernale...
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Waaaaaaaouw
    Monsieiur Delahaye, je vous tire mon chapeau bien bas...
    Vous maitrisez vraiment la programmation, pas le moindre petit aspect des fonctions du langage C ne semble pouvoir vous échapper...
    Merci pour votre aide, les débutants comme moi (je fais actuellement un graduat en informatique en Belgique) ont grand besoin d'aide des maitres en la matière comme vous.

    Bon dimanche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2003] avertissement sonore dans outlook 2003
    Par finju dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 20/04/2009, 15h00
  2. Réponses: 3
    Dernier message: 24/11/2003, 17h41
  3. [Kylix] Message d'avertissement GPL Kylix OE
    Par fred78 dans le forum EDI
    Réponses: 5
    Dernier message: 30/11/2002, 13h12
  4. Acquisition sonore
    Par Rodrigue dans le forum DirectX
    Réponses: 1
    Dernier message: 26/08/2002, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo