J'essaie d'envoyer une séquence de touches à une autre application. Je peux trouver le handle de fenêtre avec succès car l'utilisation de SendMessage a fonctionné exactement comme prévu.PostMessage pour les messages d'application croisée
Toutefois, lorsque j'ai basculé SendMessage sur PostMessage, l'application n'a plus reçu les messages.
J'ai cependant trouvé une solution de contournement en utilisant HWND_BROADCAST comme handle de fenêtre, et cela fonctionne bien, mais ce n'est pas la solution idéale.
Ce que je demande est, j'ai un hWnd valide, comment puis-je lui envoyer des messages en utilisant PostMessage et non SendMessage?
Modifier C'est ce que j'essaie de faire.
HWND Target = FindWindow(0, "Window Title Goes Here");
LPARAM lParam = (1 | (57<<16)); // OEM Code and Repeat for WM_KEYDOWN
WPARAM wParam = VK_SPACE;
PostMessage(HWND_BROADCAST, WM_KEYDOWN, wParam, lParam); // Works
PostMessage(Target, WM_KEYDOWN, wParam, lParam); // Doesn't Work
SendMessage(Target, WM_KEYDOWN, wParam, lParam); // Works, but I need Post
quel message vous envoyez des messages et quels sont les params? – dkackman
Quel système d'exploitation? HWND_BROADCAST, il ne peut pas poster de message dans la fenêtre enfant. – adatapost
Quelle est la valeur de retour de GetLastError() après le PostMessage? –