[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. 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. :)
      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. 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. 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. 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. Oui je connais set /p
                Mais comme une pause sans appuyer sur entré après.
                Merci.

                Bilou.
                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