Utilisation des touches f1-f12 dans un projet console

Contenu du snippet

Suite à des questions à ce sujet sur le forum, je dépose ce petit code source permettant de récupérer les codes des touches F1-F12, flèches, INSER, SUPPR etc. Ca pourrait être très utile dans certains cas de projets console ou DOS pur. Pour les touches qui ne possèdent pas de code ASCII, la fonction getch() renvoit 0. Le code SCAN de la touche reste dans le buffer clavier. Il suffit d'appeler getch() une deuxième fois pour le récupérer. Ce source est tellement simple qu'il n'a pas besoin de commentaires.

Source / Exemple :


//----------------------------------------------------------------------------------------
#include <conio.h>
#include <stdio.h>

void main()
{
	int touche;
	printf ("\nAppuyer sur la touche ECHAP pour quitter\n");
 	while(1)
	{
      touche=getch();
	  if (touche==0 || touche==224)
	  { 
		  touche=getch();
		  switch (touche)
		  {
		  case (59):printf("Scancode : %d%s\n",touche,"  = Touche F1 ");break;
		  case (60):printf("Scancode : %d%s\n",touche,"  = Touche F2 ");break;
		  case (61):printf("Scancode : %d%s\n",touche,"  = Touche F3 ");break;
		  case (62):printf("Scancode : %d%s\n",touche,"  = Touche F4 ");break;
		  case (63):printf("Scancode : %d%s\n",touche,"  = Touche F5");break;
		  case (64):printf("Scancode : %d%s\n",touche,"  = Touche F6 ");break;
		  case (65):printf("Scancode : %d%s\n",touche,"  = Touche F7 ");break;
		  case (66):printf("Scancode : %d%s\n",touche,"  = Touche F8 ");break;
		  case (67):printf("Scancode : %d%s\n",touche,"  = Touche F9 ");break;
		  case (68):printf("Scancode : %d%s\n",touche,"  = Touche F10 ");break;
		  case (133):printf("Scancode : %d%s\n",touche,"  = Touche F11 ");break;
		  case (134):printf("Scancode : %d%s\n",touche,"  = Touche F12 ");break;
          case (72):printf("Scancode : %d%s\n",touche,"  = Fleche vers le HAUT");break;
          case (80):printf("Scancode : %d%s\n",touche,"  = Fleche vers le BAS ");break;
		  case (75):printf("Scancode : %d%s\n",touche,"  = Fleche vers la GAUCHE ");break;
		  case (77):printf("Scancode : %d%s\n",touche,"  = Fleche vers la DROITE");break;
		  case (73):printf("Scancode : %d%s\n",touche,"  = Page UP ");break;
		  case (81):printf("Scancode : %d%s\n",touche,"  = Page DOWN");break;
		  case (71):printf("Scancode : %d%s\n",touche,"  = DEBUT ");break;
		  case (79):printf("Scancode : %d%s\n",touche,"  = FIN ");break;
		  case (82):printf("Scancode : %d%s\n",touche,"  = INSERT");break;
		  case (83):printf("Scancode : %d%s\n",touche,"  = SUPPR");break;
		  }		  
	  }
      	  if (touche==27) return;
	}
}
//----------------------------------------------------------------------------------------------

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.