Kbhit quand l'appli est minimisé ?

cs_isaac Messages postés 9 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 24 janvier 2003 - 22 janv. 2003 à 01:01
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003 - 22 janv. 2003 à 18:10
bonjour,

je debute en c++ et je cherche à faire une appli qui compte fais une moyenne de vitesse de frappe lorsque l'on fait du Word. Ce genre de ptit soft est pratique pour former quelqu'un à la dactilo ! mais mon probleme, c'est que mon compteur compte uniquement lorsque l'appli est en 1er plan ! Quelqu'un pourrait m'aider s'il vous plait ?

#include <time.h>
#include <stdio.h>
#include <conio.h> // <conio.c>devc++4
#include <dos.h>

void chronometre(void);

int main(void)
{

char entree_clavier;

cputs(" ENTREE pour lancer le compteur ESC pour quitter ");

do {
entree_clavier = getch();

if (entree_clavier == 27) goto Fin;

} while ( entree_clavier != 13);

chronometre();
Fin :
return 0;
}

void chronometre(void) {

char entree_clavier;
clock_t depart, fin;
int minutes, heures, secondes,secondes_totales ;
unsigned int compteurFrappe=0;
unsigned int moyenneSeconde,moyenneMinute;

depart = clock();

do {

do {

compteurFrappe++;

} while (kbhit());

entree_clavier = getch();

} while (entree_clavier != 27);

fin = clock();
secondes_totales = (fin - depart) / CLK_TCK;
heures = secondes_totales / 3600;
minutes = (secondes_totales - heures * 3600) / 60;
secondes = secondes_totales - heures * 3600 - minutes * 60;

cprintf(" Heure(s) %02d : minute(s) %02d seconde(s) %02d ",heures,minutes,secondes);
cprintf(" %02d:%02d:%02d ",heures,minutes,secondes);

moyenneSeconde=compteurFrappe/secondes_totales;
moyenneMinute=moyenneSeconde*60;

cprintf(" soit une moyenne de : %02d frappes/min /n/t %02d frappes/sec.", moyenneMinute,moyenneSeconde);

return ;

}

3 réponses

cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
22 janv. 2003 à 09:18
salut,
tu débutes en C++ et ton code est en C ;-)

quelques remarques:
il faudrait restructuer le programme autrement c'est à dire
faire une fonction par exemple :
void saisir_texte(void);
et dans cet fonction il y aurait un entree_clavier = getch();
et chaque touche tapée sera comptabilisée
nbre_caracteres_tapes++ et un CLK_TCK; qui calculera le nombre de tic-tac puis convertir ce nombre en temps en minutes, car en heures c'est de la folie qui peut taper aussi longtemps ? même les secrétaires les plus chevronées ne font pas de telles performances ;-)
en fait c'est relativement simple une seule fonction peut tout faire mais tu peux en créer une autre pour les statistiques nbre_de_fautes temps_tolal_pour_la_saisie ....
0
cs_isaac Messages postés 9 Date d'inscription mercredi 20 février 2002 Statut Membre Dernière intervention 24 janvier 2003
22 janv. 2003 à 12:27
merci cmarsc ! Pourrais tu me dire comment l'appli peut compter les frappes quand je tape du texte sous word ? parce que là, j'ai modifier mon prog, mais il ne fonctionne toujours pas quand je tape sous word, il fonctionne uniquement quand la fenetre dos est selectionnée !

merci d'avance !

salut,
tu débutes en C++ et ton code est en C ;-)

quelques remarques:
il faudrait restructuer le programme autrement c'est à dire
faire une fonction par exemple :
void saisir_texte(void);
et dans cet fonction il y aurait un entree_clavier = getch();
et chaque touche tapée sera comptabilisée
nbre_caracteres_tapes++ et un CLK_TCK; qui calculera le nombre de tic-tac puis convertir ce nombre en temps en minutes, car en heures c'est de la folie qui peut taper aussi longtemps ? même les secrétaires les plus chevronées ne font pas de telles performances ;-)
en fait c'est relativement simple une seule fonction peut tout faire mais tu peux en créer une autre pour les statistiques nbre_de_fautes temps_tolal_pour_la_saisie ....
0
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
22 janv. 2003 à 18:10
ton code est bien ? sous DOS si c'est le cas, je pense qu'il ne pourra pas compter les touches tapee dans word,
0
Rejoignez-nous