c++ - 跨应用消息的PostMessage

标签 c++ windows

我正在尝试将击键发送到另一个应用程序。我可以成功找到窗口句柄,因为使用 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/

相关文章:

windows - 如何让OpenCV在Windows下工作?

python - 如何使用 Python 子进程在 Windows 中进行搜索

.net - 为什么即使在 NetworkStream.EndRead 返回 0 字节后我仍然接收数据?

带指针的 C++ 默认参数

c++ - 刷新 cin 输入的正确方法

c++ - 直接复制与虚拟复制构造函数(克隆函数)

c - PrintWindow() 无法打印 Google Chrome 窗口 (Chrome_WidgetWin_1)

c++ - 无法链接到 CryptoPP::RSAFunction 的对 VTT 的 undefined reference

c++ - 满足条件后如何终止函数

windows - 如何在批处理文件中获取一年中的某一天