Tester l'appui d'une touche

Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 - 16 avril 2006 à 20:05
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 17 avril 2006 à 16:10
Bonjour

Le programme est écrit en C en mode console.
Il faudrait que le prog puisse détecter l'appui d'une touche mais sans tout bloquer (genre, scanf, getch()...) car en même temps un chrono est déclenché (dès qu'on appui on stop le chrono OU si le temps X secondes est écoulé)

Je ne sais pas s'il existe une fonction qui pourrait faire ca, j'ai pensé a lire dans le buffer, et tant qu'il est vide ET tant que le temps n'est pas écoulé on continu de compter.
J'espère être clair, si vous avez des idées merci
++

5 réponses

Taron31 Messages postés 199 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 28 février 2008
16 avril 2006 à 20:43
Tu peux lancer un thread via CreateThread et ensuite l'arrêter lors de la détection de l'appuie d'une touche avec TerminateThread...

Dans main :

HANDLE hThread = CreatThread(..., (LPTHREAD_START_ROUTINE)MyThread, ...);
getchar();
TermnateThread(hThread, 0);

Dans MyThread tu lances un chrono...

___________________
MVS - Most Valuable Student ( Microsoft)
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
17 avril 2006 à 08:35
oui, je pense que c'est la seule solution aussi
0
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
17 avril 2006 à 11:05
Merci, mais je suis en mode console, MS-DOS, je doute pouvoir utiliser ce genre de fonctions.
0
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
17 avril 2006 à 15:40
J'ai trouvé, kbhit() fait parfaitement mon affaire...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
17 avril 2006 à 16:10
Bien sur que tu peux utiliser des threads en mode console
0
Rejoignez-nous