Salut à tous.
Je cherche à simuler l'appui de touches sur le clavier. J'utilise donc le code suivant. Le problème, c'est que ça marche pas !
Si quelqu'un sait pourquoi.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 keybd_event(41, 0, 0, 0); keybd_event(41, 0, KEYEVENTF_KEYUP, 0);
Du coup, j'ai essayé en utilisant les PostMessage sur une application, mais, malheureusement pour moi, c'est l'application qui reçoit les évènements, et pas le contrôle actif.
Je m'explique.
Pour tester tout ça, j'ai créé une application avec un TMemo actif au lancement. J'ai fait une autre application avec le code suivant :
Pour info TForm2 est la classe de l'application qui contient mon TMemo. A l'exécution de ce code, l'application TForm2 passe bien au premier plan, mais les évènements clavier sont reçus par la form mais pas par le TMemo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var handle: HWND; begin handle := FindWindow('TForm2', nil); SetForegroundWindow(handle); sleep(500); PostMessage(handle, WM_KEYDOWN,41, 0); sleep(1000); PostMessage(handle, WM_KEYUP,41, 0); end;
Quelqu'un saurait-il comment envoyer les messages au contrôle actif ? [Que ce soit clair, dans l'absolu, je ne peux pas modifier l'application cible. J'ai essayé avec NotePad, à priori, même problème]
Partager