Code ASCII des touches de direction

Code ASCII des touches de direction - Divers - Programmation

Marsh Posté le 05-04-2006 à 10:33:37    

Je n'arrive pas à récupérer le code ACSII des touches de direction (il me fait le code des 4 touches haut, bas, gauche et droite)...
en utilisant getch() ca me donne l'historiques des codes de touches frappées, normal.
 
Et sur le net, je ne trouve pas :/
 
merci d'avance :)

Reply

Marsh Posté le 05-04-2006 à 10:33:37   

Reply

Marsh Posté le 05-04-2006 à 11:34:29    

http://tcharles.developpez.com/simul/?delphi=1#VK
 
Ceux qui t'intéressent : VK_UP, VK_DOWN, VK_LEFT et VK_RIGHT.
 
Enjoy!

Reply

Marsh Posté le 05-04-2006 à 11:38:50    

Il n'y a pas de norme Ascii pour les flèches. Cela dépend des systèmes d'exploitation.
 
Sur un PC en mode console (DOS), les touches de direction sont récupérées par deux appels à getch().
Voici un exemple ci-dessous.


#define KBHOME 327
#define KBEND 335
#define KBUP 328
#define KBDOWN 336
#define KBPGUP 329
#define KBPGDN 337
#define KBLEFT 331
#define KBINS 338
#define KBRIGHT 333
#define KBDEL 339
 
       c0 = getch();
       if (c0==0) { /* Did user hit a non-ASCII key? */
          c1=getch()+256;        /* Read scan code for keyboard*/
          if (c1==KBUP) ...
          if (c1==KBDOWN) ...


Dans une application Windows, on utilisera le message WM_KEYDOWN et en testant si le paramètre est VK_UP, VK_DOWN, etc.
 
Sous Unix, on utilisera les bibliothèques curses, http://pdcurses.sourceforge.net/index.html , ou d'autres méthodes.


Message édité par olivthill le 05-04-2006 à 11:40:22
Reply

Marsh Posté le 05-04-2006 à 14:22:05    

d'accord merci à vous deux !
 
les variables c1 et c0 sont de type integer ?
 

Code :
  1. int vitesse_instantanee(int changement_vitesse)
  2. {
  3. int v_inst = 50;                //vitesse initiale
  4. int kbdir;               // touche de direction
  5.     if (changement_vitesse==0)      // Did user hit a non-ASCII key?
  6. {                           
  7.        kbdir=getch()+256;           // Read scan code for keyboard
  8.        if (kbdir==KBUP)
  9.     v_inst = v_inst+5;
  10.        if (kbdir==KBDOWN)
  11.     v_inst = v_inst-5;
  12. }
  13. return v_inst;
  14. }


 
est ce que c'est bon ca ?


Message édité par dRfELL le 05-04-2006 à 15:48:33
Reply

Marsh Posté le 05-04-2006 à 19:58:09    

up :)

Reply

Marsh Posté le 05-04-2006 à 23:29:53    

Oui getch() renvoie un entier, donc ça devrait marcher, du moins dans une application Windows de type console compilée avec un compilateur qui accepte getch(), comme par exemple BC, sans oublier de spécifier #include <conio.h>.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed