[MFC]Simuler CTRL+HOME avec PostMessage
Bonjour,
J'ai une application qui simule des evenements claviers dans un autre application.
Si je veux simuler l'appui de la touche 'r' dans une application cible mon code est le suivant :
Code:
1 2 3 4
|
::PostMessage(target->m_hWnd, WM_KEYDOWN, 0x00000052, 0x00130001);
::PostMessage(target->m_hWnd, WM_CHAR, 0x00000072, 0x00130001);
::PostMessage(target->m_hWnd, WM_KEYUP, 0x00000052, 0xC0130001); |
Ce morceau de code marche et si mon application cible est Notepad, je vois bien un 'r' s'afficher.
J'ai ecrit ce code en utilisant Spy++ pour voir les messages envoyes.
Mon probleme est maintenant de simuler l'appui sur CTRL+HOME, pour pouvoir' toujours dans Notepad, revenir au debut du fichier.
Avec Spy++ les messages recus par Notepad lorsque j'appuie reellement sur CTRL+HOME sont les suivants :
Code:
1 2 3 4 5
|
<00895> 001C01B4 P WM_KEYDOWN nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:0 fUp:0
<00894> 001C01B4 P WM_KEYDOWN nVirtKey:VK_HOME cRepeat:1 ScanCode:47 fExtended:1 fAltDown:0 fRepeat:0 fUp:0
<00895> 001C01B4 P WM_KEYUP nVirtKey:VK_HOME cRepeat:1 ScanCode:47 fExtended:1 fAltDown:0 fRepeat:1 fUp:1
<00896> 001C01B4 P WM_KEYUP nVirtKey:VK_CONTROL cRepeat:1 ScanCode:1D fExtended:0 fAltDown:0 fRepeat:1 fUp:1 |
J'ai donc ecrit le code suivant qui reproduit (toujours d'apres Spy++) exactement les meme messages :
Code:
1 2 3 4 5
|
::PostMessage(target->m_hWnd, WM_KEYDOWN, 0x00000011, 0x001D0001); // VK_CONTROL
::PostMessage(target->m_hWnd, WM_KEYDOWN, 0x00000024, 0x01470001); // VK_HOME
::PostMessage(target->m_hWnd, WM_KEYUP, 0x00000024, 0xC1470001);
::PostMessage(target->m_hWnd, WM_KEYUP, 0x00000011, 0xC01D0001); |
Malheureusement le resultat n'est pas le meme :? En fait dans Notepad, le resultat observe est le meme que si j'appuyais seulement sur la touche HOME (retour en debut de ligne et non en debut de fichier).
Ai-je oublier quelque chose ?