【发布时间】:2019-08-01 17:18:17
【问题描述】:
PostMessage 和 SendMessage 中的WM_KEYUP 不起作用
我尝试将 ASCII 码从 0x57 更改为 0x005701,因为我的朋友说它应该可以,但它没有。
#include <iostream>
#include <windows.h>
using namespace std;
int KEY_DOWN = 0x57;
int main()
{
HWND hwnd;
if (!(hwnd = FindWindow(L"AAAA", NULL))) {
cout << "Couldn't find window";
}
else {
Sleep(5000);
PostMessage(hwnd, WM_SETFOCUS, NULL, NULL);
PostMessage(hwnd, WM_KEYDOWN, KEY_DOWN, NULL);
}
}
我想做一个应用程序,将WM_KEYDOWN 和WM_KEYUP 发送到PostMessage 或SendMessage 的应用程序,但WM_KEYUP 不起作用
【问题讨论】:
-
您没有显示任何试图发布
WM_KEYUP的代码。阅读WM_KEYDOWN 和WM_KEYUP 的文档,其中涉及的不仅仅是关键代码。但是,You can't simulate keyboard input with PostMessage,请考虑改用 UI 自动化 API。你最终想要完成什么? -
哦...我忘记在代码中添加这个...
PostMessage(hwnd, WM_KEYUP, 0x57, NULL); -
您预计会发生什么,您有什么证据表明您的预期是正确的?
-
我希望它会上下点击 w
-
您没有理由期望会发生这种情况。如果你想伪造输入,SendInput 是要使用的 API。