comment verifier l'appuie des touche directionnel sous MS-dos?
Version imprimable
comment verifier l'appuie des touche directionnel sous MS-dos?
paix et félicité,
tu dois utiliser les Virtual Key VK_LEFT, VK_RIGHT, etc....
Si tu parles du mode Win32 console, peut-être pourras-tu faire comme Hypnos suggère, à condition de pouvoir récupérer le code clavier virtuel.Citation:
Envoyé par gaut
Si tu es en mode DOS pur (comme Turbo C++), le mieux pour découvrir les codes est de lancer le programme suivant :
Il est normal que pour des touches comme les touches de direction, deux octets soient renvoyés : d'abord 0 pour dire "touche étendue", puis un code spécifique.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { puts("Enfoncez des touches. Les codes reçus seront affichés. Tapez Z pour terminer."); do { int ch = getch(); printf("J'ai reçu le caractère de code ASCII %d : %c\n", ch, ch); } while (ch != 'Z'); return EXIT_SUCCESS; }
comment lit on le premier octet recu puis le deuxieme ?
Tu n'as pas toujours précisé sous quel environnement tu travaillais. Je continue sur ma supposition : Turbo C/C++ sous DOS (le vrai).
C'est simple. Tu fais un premier getch(). S'il renvoie 0, tu rappelles getch() pour lire le code étendu.Citation:
Envoyé par gaut
Salut
Voici un petit exempleFonctionne que sous ms-dos. En faisant qql essais je pense que tu trouveras vite les autres codes étendus.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 int touche ; do { touche = getch() ; if(!touche) // Touches à code étendue { touche = getch() ; // Lecture du code switch(touche) { case 0x4B : // Flêche gauche break ; case 0x4D : // Flêche droite break ; case 0x48 : // Flêche haute break ; case 0x50 : // Flêche basse break ; case 0x49 : // Page UP break ; case 0x41 : // Page DOWN break ; default : // Autre code break ; } ; } else // Touches standard { } } while(touche!=0x1B) ; // Exit si touche = ESCAPE
Bye...
je programme sous dev-cpp
j'aimerais savoir aussi comment agrandir l'ecran de la console MS-dos
et comment afficher un texte a un endroit precis
ex : print text 200,180,"salut tout le monde"
200 et 180 etant l' abscisse et l' ordonné respective du texte
Il n'y a pas de methode portable pour faire ce que tu veux. Sous certains compilateurs (sous DevC++ je ne sais pas) il existe la fonction gotoxy qui permet de se placer a un endroit precis de console.Citation:
Envoyé par gaut
merci bien pour vos reponses ! :D