MultiTimer & keybd_event()

Signaler
Messages postés
103
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
5 janvier 2007
-
Messages postés
103
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
5 janvier 2007
-
Bonjour à tous,

J'ai fait une application en MFC qui me permet d'appuyer sur des touches du clavier toutes les x secondes (la touche et le nombre de seconde sont paramettrables).

Voici mon code pour lancer un timer :

  int nIndex = c_combo1.GetCurSel();
  c_combo1.GetLBText(nIndex, &caract1);
  if(caract1 != 0 && caract1 != ' ')
     nIDB1 = SetTimer(1, m_mseconde1, 0);

Et dans mon OnTimer :

if(nIDEvent == 1)
 {
  keybd_event(caract1,0,0,0);
  keybd_event(caract1,0,KEYEVENTF_KEYUP,0);
  // Mise a jour du compteur n°1
  compteur1++;
  CString str1;
  str1.Format("%d", compteur1);
  m_compteur1.SetWindowText(str1);
 }

J'ai fait ensuite des gros copier coller, en changeant juste les n°.

Mais ... j'ai des bugs que je n'arrive pas à résoudre.
Mes compteurs s'incrementent bien au nombre de seconde que j'ai indiqué (à peu près).

Par contre, si je choisi le caractere A tous les 10 secondes, le caractere B tous les 20 secondes, j'aurais ca qui s'affiche sur blocnote : ABBBBB
Une fois que les 20 secondes sont passés, il n'y a plus de A :-/

Et le mode debug ne veux rien me dire dans les timers :/

En esperant que quelqu'un puisse m'aider,
 Merci.

2 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Tu oublies de relâcher la touche !
Et oui c'est une vrai simulation !!!
Rajoute un keybd_event avec 0 comme 3ème param

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
103
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
5 janvier 2007
1
Mon probleme n'a pas changer, a part qu'en rajoutant un keybd_event avec 0 comme 3ème param, j'ai 2 fois la lettre qui est tapé :-/