VK_SendKeyDownMsg(BYTE key) {
DWORD dwVKFkeyData;
WORD dwScanCode = MapVirtualKey(key, 0);
dwVKFkeyData = 1;
dwVKFkeyData |= dwScanCode << 16;
dwVKFkeyData |= 0 << 24;
dwVKFkeyData |= 0 << 29;
::SendMessage(hwnd, WM_KEYDOWN, key, dwVKFkeyData);
}
这里需要注意的是lParam的赋值.不同消息对应的lParam定义不一样.
WM_KEYDOWN相关的lParam说明:
WM_KEYDOWN message (Winuser.h) - Win32 apps | Microsoft Learn
WM_KEYUP相关的lParam说明:
WM_KEYUP message (Winuser.h) - Win32 apps | Microsoft Learn
WM_KEYUP和WM_KEYDOWN的lParam参数差异主要是第30-31位:

本文介绍如何使用WM_KEYDOWN和WM_KEYUP消息来模拟键盘按键操作。详细解析了这两个消息中lParam参数的具体含义及其差异,并提供了具体的实现代码。
最低0.47元/天 解锁文章
1366

被折叠的 条评论
为什么被折叠?



