Dans ce cours, avant d'attaquer les menus, je tiens à vous faire maîtriser une commande : KEYX.exe
(Je l'ai écrite en C)
Téléchargeable ici :
- Code:
-
http://www.box.com/s/5keuloui7ijr03u6uz7n
Le principe ressemble à la commande CHOICE, sauf que celle ci est plus rapide et prends en compte plus de touches...
Elle renvoie le code ASCII de la touche que vous appuyer.
• ASCII ? C'est quoi ?
ASCII est un code qui fait correspondre chaque touche de votre clavier à un numéro.
par exemple le code de la touche Enter est le 13,
celui de la touche espace est le 32,
la touche HAUT est le 72, le BAS c'est le 80,
la GAUCHE c'est le 75, la DROITE c'est le 77.
ou encore le "ECHAP" : 27.
Bref il y a un code pour chaque touche. (Enfin presque...)
Cette commande renvoie ce code dans la variable ERRORLEVEL.
Exemple :
- Code:
-
@ECHO OFF
:A
KEYX.exe
ECHO.Code = %ERRORLEVEL%
GOTO A
Ce bout de code vous permet de connaitre le code des touches du clavier.
(testez-le et appuyer sur des touches)
Ensuite il est facile d'ajouter quelques conditions, pour quitter le programme par exemple :
- Code:
-
@ECHO OFF
:A
CLS
ECHO Appuyer sur Echap pour quitter .
KEYX.exe
IF %ERRORLEVEL%==27 EXIT
GOTO A
Ce programme se ferme si vous appuyer sur ECHAP, mais ne fera rien avec une autre touche.
Notez qu'ici il y a un CLS et un message.
Le programme fait donc ceci :
1ere boucle : Il efface l'ecran puis affiche "Appuyer sur Echap pour quitter ."
Il attends que vous appuyer sur une touche.
Il verifie si cette touche est ECHAP, si c'est le cas il quitte (EXIT).
Et il recommence tous cela.
Si ce programme fontionnerai trés vite il ferai clignoter l'écran.
(essayer de rester appuyer sur une touche quelconque)
La solution est la suivante :
- Code:
-
@ECHO OFF
:AFFICHAGE
CLS
ECHO Appuyer sur Echap pour quitter .
:BOUCLE
KEYX.exe
IF %ERRORLEVEL%==27 EXIT
GOTO BOUCLE
Avec ce code : plus de clignotement !
En résumer :
- Cette commande renvois touche a appuyer l'utilisateur.
- La commande ATTENDS que l'utilisateur appuis sur une touche.
Une autre chose TRES importante :
- lorsque vous appuyer sur une touche que la commande ne peux pas identifier elle vous vous renvoie la valeur 900.
- Une option de cette commande est qu'elle peux attendre un certain temps avant de laisser le programme continuer.
Ce temps doit étre donné en milliseconde (donc pour faire une seconde il faut mettre mille).
Exemple :
- Code:
-
@ECHO OFF
:A
KEYX.exe 250
ECHO.Code = %ERRORLEVEL%
GOTO A
Ce programme vous laisse 250 millisecondes pour appuyer sur une touche. (ou encore 0.25 seconde)
Voilà pour la commande KEYX.exe