【发布时间】:2010-11-27 16:52:42
【问题描述】:
我正在尝试将击键发送到另一个应用程序。我可以成功找到窗口句柄,因为使用 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
【问题讨论】:
-
您要发布什么消息以及参数是什么?
-
哪个操作系统? HWND_BROADCAST,它不能向子窗口发布消息。
-
PostMessage 之后 GetLastError() 的返回值是多少?