模拟单键输入
void SendUnicode(wchar_t data)
{
INPUT input[2];
memset(input, 0, 2 * sizeof(INPUT));
input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = 0;
input[0].ki.wScan = data;
input[0].ki.dwFlags = 0x4;//KEYEVENTF_UNICODE;
input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = 0;
input[1].ki.wScan = data;
input[1].ki.dwFlags = KEYEVENTF_KEYUP | 0x4;//KEYEVENTF_UNICODE;
SendInput(2, input, sizeof(INPUT));
}
多键同时按下 通过是contrl alt +字母
void keyboardTreeKey(unsigned short key1, unsigned short key2, unsigned short key3){
qDebug()<<"键盘命令"<<key2;
INPUT input[6];
memset(input, 0, sizeof(input));
input[0].type = input[1].type = input[2].type = input[3].type = input[4].type = input[5].type = INPUT_KEYBOARD;
input[0].ki.wVk = input[3].ki.wVk = key1;// VK_CONTROL;
input[1].ki.wVk = input[4].ki.wVk = key2;//VK_MENU;
input[2].ki.wVk = input[5].ki.wVk = key3;
input[3].ki.dwFlags = input[4].ki.dwFlags = input[5].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(6, input, sizeof(INPUT));
}
键盘命令分按下和抬起,都要传入。 两键的组合键输入input[4],后两位设为抬起
网友评论