comment verifier l'appuie des touche directionnel sous MS-dos?
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.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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.Envoyé par gaut
merci bien pour vos reponses !![]()
Partager