我正在尝试将击键发送到另一个应用程序。我可以成功找到窗口句柄,因为使用 SendMessage 完全按预期工作。
但是,当我将 SendMessage 切换到 PostMessage 时,应用程序不再收到消息。
不过,我确实通过使用 HWND_BROADCAST 作为窗口句柄找到了一个解决方法,它工作正常,但不是实现它的理想方法。
我要问的是,我有一个有效的 hWnd,如何使用 PostMessage 而不是 SendMessage 向它发送消息?
编辑 这就是我想要做的。
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
最佳答案
PostMessage
函数在消息编号介于 0 和 WM_USER
-1 之间时不起作用。使用 RegisterWindowMessage功能来注册您自己的消息。
关于c++ - 跨应用消息的PostMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1414187/