如何 print/press '@' 使用 keybd_event 函数?
How to print/press '@' using keybd_event function?
要按'a'密码是
keybd_event(VkKeyScan(64),0,0,0);
释放键码为
keybd_event(VkKeyScan(64),0,KEYEVENTF_KEYUP,0);
要按“@”,我需要两个键的组合 - SHIFT 和 2,但我不知道怎么做。
keybd_event (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v=vs.85).aspx)
尝试以下操作:
- 按 Shift
- 按 2
- 第 2 版
- 发布班次
附录
我刚刚检查了我自己的代码,在那里我做了同样的事情... keybd_event
已被弃用(如您链接的网站上所述),您应该改用 SendInput
。
这是我发送按键按下和释放的两个函数:
void sendKeyDown(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode;
input.ki.dwFlags = 0;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
SendInput(1, &input, sizeof(INPUT));
}
void sendKeyUp(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode;
input.ki.dwFlags = KEYEVENTF_KEYUP;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
SendInput(1, &input, sizeof(INPUT));
}
这应该会给你一个 @
:
sendKeyDown(VK_SHIFT);
sendKeyDown(0x32);
sendKeyUp(0x32);
sendKeyUp(VK_SHIFT);
请检查 0x32
,我目前无法可靠地测试它是否是密钥 2
。
要按'a'密码是
keybd_event(VkKeyScan(64),0,0,0);
释放键码为
keybd_event(VkKeyScan(64),0,KEYEVENTF_KEYUP,0);
要按“@”,我需要两个键的组合 - SHIFT 和 2,但我不知道怎么做。
keybd_event (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v=vs.85).aspx)
尝试以下操作:
- 按 Shift
- 按 2
- 第 2 版
- 发布班次
附录
我刚刚检查了我自己的代码,在那里我做了同样的事情... keybd_event
已被弃用(如您链接的网站上所述),您应该改用 SendInput
。
这是我发送按键按下和释放的两个函数:
void sendKeyDown(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode;
input.ki.dwFlags = 0;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
SendInput(1, &input, sizeof(INPUT));
}
void sendKeyUp(unsigned char keyCode)
{
INPUT input;
input.type = INPUT_KEYBOARD;
input.ki.wVk = keyCode;
input.ki.dwFlags = KEYEVENTF_KEYUP;
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
SendInput(1, &input, sizeof(INPUT));
}
这应该会给你一个 @
:
sendKeyDown(VK_SHIFT);
sendKeyDown(0x32);
sendKeyUp(0x32);
sendKeyUp(VK_SHIFT);
请检查 0x32
,我目前无法可靠地测试它是否是密钥 2
。