Bonjour,
mon problème est le suivant: dans une de mes applications je doit maintenir des touches enfoncée pendant un certains temps tout en permettant les interactions habituelles (exemple mon soft maintient control et l'utilisateur appuyé sur [c] ou [v] pour faire son copier-coller).
Tout ça marche bien, a part pour la touche tab qui me permet de rencontrer des bugs étranges.

Exemple concret, ce code maintient [alt] enfoncée pendant deux secondes. Lancer le, et pendant le sleep, appuyez une ou plusieurs fois sur [tab] pour faire un changement d'application. A la fin des deux secondes le alt-tab s'effectue mais la touche alt est considérée comme encore enfoncée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
  sleep(2000);
  keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
Si on effectue un alt-tab complet à coup de keybd_event ça marche bien.
Le bug marche avec keybd_event aussi bien qu'avec des messages WM_KEYDOWN (ou WMSYSKEYDOWN) ou qu'avec la fonction SendInput.

Est ce que quelqu'un aurait une idée de comment résoudre mon problème principal: maintenir [alt] enfoncée?

Merci.