Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1047 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Lecture du code d'une touche appuyée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Lecture du code d'une touche appuyée

n°1459236
ezeta
Posté le 18-10-2006 à 00:02:15  profilanswer
 

Bonjour, je cherche à trouver, en C, sur quelle touche l'utilisateur a appuyé... du style getch() mais je voudrais pouvoir différentier l'appui sur F1 ou F2 par exemple... et je ne trouve pas de solution...
Help-me !

mood
Publicité
Posté le 18-10-2006 à 00:02:15  profilanswer
 

n°1459243
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-10-2006 à 00:26:38  profilanswer
 

ezeta a écrit :

Bonjour, je cherche à trouver, en C, sur quelle touche l'utilisateur a appuyé... du style getch() mais je voudrais pouvoir différentier l'appui sur F1 ou F2 par exemple... et je ne trouve pas de solution...
Help-me !


Rien de portable. Quel système, quel compilateur ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1459245
ezeta
Posté le 18-10-2006 à 00:31:12  profilanswer
 

j'utilise dev-cpp sous Windows

n°1459357
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-10-2006 à 10:57:32  profilanswer
 

ezeta a écrit :

j'utilise dev-cpp sous Windows


Cet IDE n'est plus maintenu, je te conseille de le remplacer par Code::Blocks (même compilateur, mêmes DevPaks).
 
Tu as donc accès à la bibliothèque CONIO (Télécharger le DevPak si tu ne l'as pas)
 
Dans ce cas, le principe est simple. :
 

  • Le header est <conio.h>
  • getch() retourne le code ASCII des touches 'courantes'.
  • Si elle retourne 0 ou 244, il est possible qu'une touche 'étendue' ait été frappée. Pour le savoir, on regarde si un deuxière code est disponible dans le bugger clavier avec kbhit().
  • Si il y a un code disponible, on le lit avec getch(). Selon sa valeur, c'est une des touches étendues.


Petit programme illustrant ce fonctionnement. Je te laisse en tirer les conclusions qui s'imposent (je te conseille d'utiliser des constantes (UP, DOWN, LEFT, RIGHT etc.) dans ton application.

Code :
  1. #include <conio2.h>
  2. enum
  3. {
  4.    ESC = 27,
  5.    dummy
  6. };
  7. int main (void)
  8. {
  9.    int end = 0;
  10.    while (!end)
  11.    {
  12.       int c = getch ();
  13.       cprintf ("%4d", c);
  14.       switch (c)
  15.       {
  16.       case 0:
  17.          if (kbhit ())
  18.          {
  19.             c = getch ();
  20.             cprintf ("%4d", c);
  21.          }
  22.          break;
  23.       case 224:
  24.          if (kbhit ())
  25.          {
  26.             c = getch ();
  27.             cprintf ("%4d", c);
  28.          }
  29.          break;
  30.       case ESC:
  31.          end = 1;
  32.          break;
  33.       }
  34.       cprintf ("\n\r" );
  35.    }
  36.    return 0;
  37. }



Message édité par Emmanuel Delahaye le 18-10-2006 à 11:08:53

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Lecture du code d'une touche appuyée

 

Sujets relatifs
Je ne comprend pas ce code....[Visual Studio] Ré-indenter le code
[C ou C++] Lecture dans une base de donnéesBatch - Supprimer les attributs lecture seule d'une archive zip
aide sur une le code d'une macroAuthentication php puis lecture flash
Pb sur lecture de socket[C] Librairie BC 3.1 pour chronomètrer du code?
Code retour Java sous UnixCode PHP pour lecteur video
Plus de sujets relatifs à : [C] Lecture du code d'une touche appuyée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR