Bip dans batch

Bonjour,

je souahiterai émettre un BIP lors de la fin d'un COPY.

La commande Ctrl+G fonctionne mais pas de manière automatique puisqu'il faut faire "Entrer" pour la valider.

Comment faire ?

Merci pour votre aide.

Vixage

11 réponses

  1. Modérateur
    Il ya une fonction qui fait des bip sdans la bibliothèque user32.dll

    Tu peux l'utiliser comme ça dans un batch (comme alternative au C):
    rundll32 user32.dll,MessageBeep -1

    Par contre pour ta boucle je sais pas...
    7
    1. Contributeur
      tu as essayer "echo ^G"?
      2
      1. J'ai fait
        echo ^G >test.txt
        type test.txt

        Et voici le caractere :
        2
        1. bonjours, ce caractere marche mais quel est le racourci clavier ou alors ou peut on le trouver a part ici?
          0
        2. Re:

          le caractère clavier est : Ctrl + G c'est à dire la touche contrôle de votre clavier avec la lettre G tous en restant appuyer sur Ctrl puis G

          karirovax ;)
          0
        3. bonjour
          vous êttes génial !
          vous venez de sauver mon .bat
          merci et bonne continuation à vous !
          0
      2. salut

        oui exactement avec la combinaison du clavier Ctrl+G et le metre dans un fichier externe.

        echo ^G >test.txt

        puis ouvrir votre fichier test.txt et faire un copier/coller dans votre fichier batch et voilà ;)

        vous pouvez la copier plusieurs fois comme vous voulez ;)
        2
        1. Cela fonctionne si je saisi la commande dans l'invite de commande.
          Par contre si je met la commande dans un fichier CMD cela ne fonctionne pas meme si je lance le fichier CMD via l'invite de commande.

          As tu une idée pour résoudre mon problème ?
          Merci.
          1
          1. Contributeur
            Fait chier ton truc...
            J'ai eu le même problème avec sleep.
            Du coup, j'ai fait un prog C.
            Donc ce que je te conseil, tu crée un prg C :
            #include <stdio.h>
            int main()
            {
                 printf("\b\n");
                 return 0;
            }

            que tu apel beep.exe, tu le copie dans c:\windows\system32
            et tu n'a plus qu'a rajouter la ligne "beep " dans ton batch
            1
            1. Je te remercie pour ta solution que je vais tester au plus vite.

              Merci encore et bonne journée.

              Vixage
              1
              1. Je viens de tester ta solution et cela ne fonctionne pas. Pourquoi mettre l'exe dans C:\Windows\System32 ?

                #include <stdio.h>
                int main()
                {
                printf("\b\n");
                return 0;
                }

                Merci pour ton aide,

                Vixage
                1
                1. Contributeur
                  je le met dans system 32 pour qu'il soit dans le PATH et fonctionne avec tout les batch. En effet, je me suis planter, c'est printf("\a") qui fait un bip...
                  Il ne reste plus qu'a espérer que ça fonctionne correctemetn dans ton script. Si ça ne fonctionne pas, il faut essayer avec deux options de compil différente : fenetre console ou prog win32. (-mwindows dans gcc je croi).
                  Si ça ne fonctionne toujours pas, je seche.
                  1
                  1. Merci cela fonctionne niquel !!!

                    Par contre sais tu comment faire bipper dans un batch jusqu'à une intervention utilisateur ?

                    Avec un for c'est jouable non ?

                    Merci
                    1
                    1. Juste pour répondre même s'il est trop tard cela pourra toujours servir à quelqu'un
                      Le principe est de créer un batch qui lance un processus créant un fichier ou non selon la réponse de l'utilisateur, et parallélement de faire des bips.

                      Voici le programme beep.bat
                      :init
                      Start "Confirmation d arret" DemandeUser.bat
                      goto debut

                      :debut
                      If exist TestReussie.tst goto Fin
                      goto suite

                      :suite
                      Color 1f
                      Set Num=%1%
                      Title beep %Num%
                      rundll32 user32.dll,MessageBeep -1
                      sleep 3
                      Color
                      goto debut

                      :fin

                      et voici demandeuser.bat
                      @echo off

                      :ini
                      rem Suppression du fichier de test
                      If exist TestReussie.tst Del TestReussie.tst /Q
                      goto debut

                      :debut
                      Rem demande utilisateur
                      set /P Test=Voulez Vous arréter les Bips O/N:

                      If %Test%==O (
                      echo Cool>testreussie.tst
                      exit
                      )else (
                      cls
                      echo %test%
                      Goto debut
                      )

                      goto fin

                      :fin
                      0
                  2. bonjour tous,

                    il suffit en fait de faire un simple:

                    echo '\a'

                    ça marche bien en copier/coller...

                    hope this will help...
                    0