window 模拟键盘命令 组合键 SendInput

模拟单键输入 

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()<<"键盘命令"<

    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],后两位设为抬起

你可能感兴趣的:(window 模拟键盘命令 组合键 SendInput)