[Batch] Détection de touche

Résolu
Bonjour,
Je voudrais savoir si il y a moyen de faire un sorte de pause et si la personne appuis sur "D" sa affiche par exemple "Vous avez appuyer sur la touche D"
Si quelqu'un a une idée.
Merci.

Bilou.
--
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
Configuration: Windows XP
Firefox 3.0.7

9 réponses

  1. Cool merci je vais étudier se batch.
    Merci.
    1. A ok.
      dsl

      Alors il faut utiliser "choice".

      Le code doit ressembler à sa :

      @echo off
      cls
      choice.exe /c:ABCDEFGHIJKLMNOPQRSTUVWXYZ /n "Entrez une touche...  "
      if "%errorlevel%"=="1" echo "Vous avez appuyé A"
      if "%errorlevel%"=="2" echo "Vous avez appuyé B"
      if "%errorlevel%"=="3" echo "Vous avez appuyé C"
      if "%errorlevel%"=="4" echo "Vous avez appuyé D"
      if "%errorlevel%"=="5" echo "Vous avez appuyé E"
      if "%errorlevel%"=="6" echo "Vous avez appuyé F"
      if "%errorlevel%"=="7" echo "Vous avez appuyé G"
      if "%errorlevel%"=="8" echo "Vous avez appuyé H"
      if "%errorlevel%"=="9" echo "Vous avez appuyé I"
      if "%errorlevel%"=="10" echo "Vous avez appuyé J"
      if "%errorlevel%"=="11" echo "Vous avez appuyé K"
      if "%errorlevel%"=="12" echo "Vous avez appuyé L"
      if "%errorlevel%"=="13" echo "Vous avez appuyé M"
      if "%errorlevel%"=="14" echo "Vous avez appuyé N"
      if "%errorlevel%"=="15" echo "Vous avez appuyé O"
      if "%errorlevel%"=="16" echo "Vous avez appuyé P"
      if "%errorlevel%"=="17" echo "Vous avez appuyé Q"
      if "%errorlevel%"=="18" echo "Vous avez appuyé R"
      if "%errorlevel%"=="19" echo "Vous avez appuyé S"
      if "%errorlevel%"=="20" echo "Vous avez appuyé T"
      if "%errorlevel%"=="21" echo "Vous avez appuyé U"
      if "%errorlevel%"=="22" echo "Vous avez appuyé V"
      if "%errorlevel%"=="23" echo "Vous avez appuyé W"
      if "%errorlevel%"=="24" echo "Vous avez appuyé X"
      if "%errorlevel%"=="25" echo "Vous avez appuyé Y"
      if "%errorlevel%"=="26" echo "Vous avez appuyé Z"
      pause>nul


      Le code est faux, je ne me souviens plus des options exact de "choice"... Tappe "choice.exe -help" dans le cmd pour corriger le code.

      Si tu n'y arrive toujours pas, je récupère mon PC sous Windows dans 4-5 jours (en panne), je te ferai le code.

      @+

      H4RDW4RE
      1. Salut
        Je ne suis pas sous Windows là, mais sa doit donner quelque chose comme sa :

        @echo off
        cls
        set /p TOUCHE=Entrez une touche...
        echo.
        echo Vous avez appuyé sur la touche %TOUCHE%.
        pause>nul

        Je ne peut pas le tester, mais cela doit être cela...

        @+
        1. @echo off
          color c
          :menu
          cls
          choice /c wasd /n /m ""
          if %errorlevel%==13 goto 13
          pause>nul
          :13
          cls
          echo.
          echo Tu as appuyer sur D
          echo.
          pause>nul
          goto menu
      2. Oui je connais set /p
        Mais comme une pause sans appuyer sur entré après.
        Merci.

        Bilou.
        1. Merci sa marche super bien.
          J'ai déjà entendu parler de cette commande choice.
          Mais il fallait l'installer ce que j'ai fait et sa marche super.
          Merci.
          1. Oaui enfaite je tes demandé sa pour faire une sorte jeux.
            Et j'aurais voulue savoir s'il y avait un moyen de faire un truc pour les cordonnées du style x et y.
            Je pense a une commande for.
            Mais je ne sais pas.
            Merci.
            1. Tiens, c'est un petiit "jeux".
              Tu pourra l'utiliser pour t'aider sur les axes X et Y.

              @echo off
              cls
              title Jeux
              mode con LINES=17 COLS=29
              rem ------------------------------------
              rem  Initialisations
              rem ------------------------------------
              set /A X=5
              set /A dX=1
              set /A Y=2
              set /A dY=1
              set VAR=O
              set VAR_MUR=±
              :debut
              rem ------------------------------------
              rem  Création de la ligne du curseur
              rem ------------------------------------
                rem --- décalage colonne ---
                set /A colonne=0
                :decal_col_avant
                  if %colonne% GEQ %X% GOTO decal_col_avant_termine
                  set VAR=^ %VAR%
                  set /A colonne+=1
                  goto decal_col_avant
                :decal_col_avant_termine
                rem --- décalage colonne pour le mur de droite ---
                set /A X_restant=25-%X%
                :decal_col_apres
                  if %X_restant% EQU 0 GOTO decal_col_apres_termine
                  set VAR_MUR=^ %VAR_MUR%
                  set /A X_restant-=1
                  goto decal_col_apres
                :decal_col_apres_termine
                set VAR=±%VAR%%VAR_MUR%
              rem ------------------------------------
              rem  Affichage
              rem ------------------------------------
                cls
                echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±
              
                rem --- décalage ligne avant ---
                set /A Y_decal_ligne=%Y%-1
                for /L %%j IN (0,1,%Y_decal_ligne%) DO (
                  echo ±                          ±
                )
                rem --- ligne curseur ---
                echo %VAR%
                rem --- décalage ligne après ---
                set /A Y_restant=11-%Y%
                for /L %%j IN (0,1,%Y_restant%) DO (
                  echo ±                          ±
                )
                echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±
                echo === X=%X% (%dX%), Y=%Y% (%dy%) ===
              rem ------------------------------------
              rem  Calculs des rebonds
              rem ------------------------------------
                if %Y% EQU 12 SET /A dY*=-1
                if %Y% EQU 0 SET /A dY*=-1
                if %X% EQU 25 SET /A dX*=-1
                if %X% EQU 0 SET /A dX*=-1
              rem ------------------------------------
              rem  Réinitialisation de variables
              rem  pour la prochaine boucle
              rem ------------------------------------
                set VAR=O
                set VAR_MUR=±
                set /A X+=dX
                set /A Y+=dY
                set /A nb-=1
              rem ------------------------------------
              rem  Temporisation si nécessaire (à décommenter)
              rem  XP: utiliser choice avec temporisation
              rem      et donner la possibilité de quitter
              rem ------------------------------------
              rem  ping 127.0.0.1 -n 2 > NUL 2> NUL
              goto debut


              C'est un code que j'ai trouvé très "basique" sur un site, et je l'ai un peu modifier.

              @+
              1. SVP quel est le code pour les flèches parce que je voudrais faire une menu de jeux et c'est pas très cool de choisir son mode de jeux avec des lettres.

                Je connais le code pour toutes les lettres :
                @echo off
                choice.exe /c:ABCDEFGHIJKLMNOPQRSTUVWXYZ /n
                if "%errorlevel%"=="1" echo "Vous avez appuyé A"
                if "%errorlevel%"=="2" echo "Vous avez appuyé B"
                if "%errorlevel%"=="3" echo "Vous avez appuyé C"
                if "%errorlevel%"=="4" echo "Vous avez appuyé D"
                if "%errorlevel%"=="5" echo "Vous avez appuyé E"
                if "%errorlevel%"=="6" echo "Vous avez appuyé F"
                if "%errorlevel%"=="7" echo "Vous avez appuyé G"
                if "%errorlevel%"=="8" echo "Vous avez appuyé H"
                if "%errorlevel%"=="9" echo "Vous avez appuyé I"
                if "%errorlevel%"=="10" echo "Vous avez appuyé J"
                if "%errorlevel%"=="11" echo "Vous avez appuyé K"
                if "%errorlevel%"=="12" echo "Vous avez appuyé L"
                if "%errorlevel%"=="13" echo "Vous avez appuyé M"
                if "%errorlevel%"=="14" echo "Vous avez appuyé N"
                if "%errorlevel%"=="15" echo "Vous avez appuyé O"
                if "%errorlevel%"=="16" echo "Vous avez appuyé P"
                if "%errorlevel%"=="17" echo "Vous avez appuyé Q"
                if "%errorlevel%"=="18" echo "Vous avez appuyé R"
                if "%errorlevel%"=="19" echo "Vous avez appuyé S"
                if "%errorlevel%"=="20" echo "Vous avez appuyé T"
                if "%errorlevel%"=="21" echo "Vous avez appuyé U"
                if "%errorlevel%"=="22" echo "Vous avez appuyé V"
                if "%errorlevel%"=="23" echo "Vous avez appuyé W"
                if "%errorlevel%"=="24" echo "Vous avez appuyé X"
                if "%errorlevel%"=="25" echo "Vous avez appuyé Y"
                if "%errorlevel%"=="26" echo "Vous avez appuyé Z"
                pause>nul

                Merci d'avance. :)