MultiTimer & keybd_event()

TiotBour Messages postés 103 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 5 janvier 2007 - 13 sept. 2006 à 20:40
TiotBour Messages postés 103 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 5 janvier 2007 - 14 sept. 2006 à 21:53
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

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
14 sept. 2006 à 10:14
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"
0
TiotBour Messages postés 103 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 5 janvier 2007 1
14 sept. 2006 à 21:53
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é :-/
0
Rejoignez-nous