Les langages de programmation

Venez apprendre les langages de programmation à votre rythme
 
AccueilGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Cours N°14 : Une commande externe importante

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Groovitron
Professeur
Professeur
avatar

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

MessageSujet: Cours N°14 : Une commande externe importante   Mar 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
Voir le profil de l'utilisateur
orwil
Nouveau Programmeur
Nouveau Programmeur


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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Dim 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
Voir le profil de l'utilisateur
Groovitron
Professeur
Professeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Dim 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
Voir le profil de l'utilisateur
zephir
Jeune Programmeur
Jeune Programmeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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 ?

_________________


Twisted Evil Zephir∴ /Z|->_S-V.P.M.C_< -|Я Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Groovitron
Professeur
Professeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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
Voir le profil de l'utilisateur
zephir
Jeune Programmeur
Jeune Programmeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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

_________________


Twisted Evil Zephir∴ /Z|->_S-V.P.M.C_< -|Я Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
khayabhany
Nouveau Programmeur
Nouveau Programmeur


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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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
Voir le profil de l'utilisateur
Groovitron
Professeur
Professeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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
Voir le profil de l'utilisateur
khayabhany
Nouveau Programmeur
Nouveau Programmeur


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

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

ok je viens de voir ...c'est bien gentille de ta part ...Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
zephir
Jeune Programmeur
Jeune Programmeur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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?

_________________


Twisted Evil Zephir∴ /Z|->_S-V.P.M.C_< -|Я Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Sprider
Fondateur
Fondateur
avatar

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

MessageSujet: Re: Cours N°14 : Une commande externe importante   Lun 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

_________________


[Vous devez être inscrit et connecté pour voir ce lien]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rider.keuf.net
zephir
Jeune Programmeur
Jeune Programmeur
avatar

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

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

ok dac bien dommage ça a son utilité

_________________


Twisted Evil Zephir∴ /Z|->_S-V.P.M.C_< -|Я Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
Cours N°14 : Une commande externe importante
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» commande en cours de validation
» [Résolu] Commande cmd
» commande menu "Enregistrer"
» Commande et retrosignalisation d'aiguilles + RRTC
» [Résolu] Disque dur externe

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: