Les langages de programmation
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Les langages de programmation

Venez apprendre les langages de programmation à votre rythme
 
AccueilGalerieRechercherDernières imagesS'enregistrerConnexion
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

 

 Cours N°14 : Une commande externe importante

Aller en bas 
5 participants
AuteurMessage
Groovitron
Professeur
Professeur
Groovitron


Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

Cours N°14 : Une commande externe importante Empty
MessageSujet: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeMar 3 Jan - 20:05

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


Dernière édition par Groovitron le Lun 1 Juil - 16:07, édité 2 fois
Revenir en haut Aller en bas
orwil
Nouveau Programmeur
Nouveau Programmeur



Nombre de messages : 1
Réputation : 10
Date d'inscription : 17/06/2012

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeDim 17 Juin - 19:16

Y at-il rien d'autre chose que KEYX.exe parce que quand j’écris ceci:
@ECHO OFF
:A
KEYX.exe
ECHO.Code = %ERROLEVEL%
GOTO A

et je lance le programme a chaque foi je cliquer il m'écris ceci:
code =
Crying or Very sad
Revenir en haut Aller en bas
Groovitron
Professeur
Professeur
Groovitron


Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeDim 17 Juin - 20:03

Le code renvoyé est dans ERRORLEVEL pas dans ERROLEVEL, je pense que ça vient de là.


Dis moi ce que ça donne avec cette modification.

Edit : je viens de m'apercevoir, l'erreur venait de mon code source, c'est corrigé.
Revenir en haut Aller en bas
zephir
Jeune Programmeur
Jeune Programmeur
zephir


Nombre de messages : 30
Age : 32
Réputation : 11
Date d'inscription : 19/05/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 20 Mai - 0:06

avec les commande:

@ECHO OFF
:A
KEYX.exe
ECHO.Code = %ERRORLEVEL%
GOTO A

il y a t'il un moyen en rajoutent une variable d'avoir comme reponce:

la lettres A correspond au code=97
ou
la touche B correspond au code=98
etc...
au lieux d'un simple
code=97

sa pourrais permettre de taper toute les touche une a une puis de les enregistré pour mémoriser ou autres non ?
ou méme simplement si on effectue plusieurs touche de s'y retrouver facilement x)

es-que c'est possible ?
Revenir en haut Aller en bas
Groovitron
Professeur
Professeur
Groovitron


Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 20 Mai - 14:14

Pour avoir une correspondance du code avec la touche du clavier tu peux regarder dans ce qu'on appelle la table ASCII. Ici par exemple : [Vous devez être inscrit et connecté pour voir ce lien]
Revenir en haut Aller en bas
zephir
Jeune Programmeur
Jeune Programmeur
zephir


Nombre de messages : 30
Age : 32
Réputation : 11
Date d'inscription : 19/05/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 20 Mai - 15:38

tres pratique merci ^^

mais es-donc impossible de le traduire dans un batch ?

de la façon (j'appuis sur la lettre A) A = 97 (ou autre possibilité avoisinent ? )

juste savoir si cela est possible pour le reste au pire sa me ferra travailler les méninge :p

encore merci Smile
Revenir en haut Aller en bas
khayabhany
Nouveau Programmeur
Nouveau Programmeur



Nombre de messages : 2
Réputation : 10
Date d'inscription : 01/07/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 1 Juil - 11:44

salut a tous ... je viens de decouvrir ce site et j'avoue que c'est vraiment pationnant tout ce que vous fetes...le geste a saluer est de vouloir partager ces connaissances ...je suis d'afrique et j'avoue kici on à le coeur a la couleur de notre....Sad ... encore merci pour tout ...

si je devais créer un fichier batch qui me renvoyais toutes mes touches taper au clavier dans un "frap.txt" par exemple  ..a koi ressemblerai le scrypt ????
merci d'avance..
Revenir en haut Aller en bas
Groovitron
Professeur
Professeur
Groovitron


Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 1 Juil - 16:09

Si je comprends tu veux un programme qui enregistre le code de la touche appuyée dans un fichier appelé "frap.txt"


Ma solution :
Code:

@ECHO OFF
:BOUCLE
KEYX.exe
ECHO.Code de la touche : %ERRORLEVEL% >> frap.txt
GOTO BOUCLE

Ainsi à chaque touche appuyée il enregistrera son code dans un fichier.
Revenir en haut Aller en bas
khayabhany
Nouveau Programmeur
Nouveau Programmeur



Nombre de messages : 2
Réputation : 10
Date d'inscription : 01/07/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeSam 6 Juil - 14:31

ok je viens de voir ...c'est bien gentille de ta part ...Smile
Revenir en haut Aller en bas
zephir
Jeune Programmeur
Jeune Programmeur
zephir


Nombre de messages : 30
Age : 32
Réputation : 11
Date d'inscription : 19/05/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 2 Nov - 11:57

salut salut j'ai une petite question serrai t'il possible que le keyx.exe soit ""créez"" par le batch ?

je les déjà vue sur des petit game en batch ou le jeux créez une .exe et actuellement ça me serrai très utile de savoir comment faire avec celui si, quelqu’un peux m'aidez?
Revenir en haut Aller en bas
Sprider
Fondateur
Fondateur
Sprider


Nombre de messages : 285
Localisation : sur Terre !
Réputation : 9
Date d'inscription : 23/06/2007

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 2 Nov - 12:21

Salut Zephir

Je ne suis pas sur mais je croit que ce n'est pas possible car le keys.exe a été codé en C ou C+ 

A confirmer par Groovitron
Revenir en haut Aller en bas
https://rider.keuf.net
zephir
Jeune Programmeur
Jeune Programmeur
zephir


Nombre de messages : 30
Age : 32
Réputation : 11
Date d'inscription : 19/05/2013

Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitimeLun 2 Nov - 14:29

ok dac bien dommage ça a son utilité
Revenir en haut Aller en bas
Contenu sponsorisé





Cours N°14 : Une commande externe importante Empty
MessageSujet: Re: Cours N°14 : Une commande externe importante   Cours N°14 : Une commande externe importante Icon_minitime

Revenir en haut Aller en bas
 
Cours N°14 : Une commande externe importante
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Commande externe : Choice
» Cours N°12 : La commande SETLOCAL
» La commande ECHO
» Cour n°08 Commande shutdown
» Résumer - La commande SET

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les langages de programmation :: Les Cours de Programmation :: Cours de BATCH (.bat)-
Sauter vers: