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()<<"键盘命令"<<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],后两位设为抬起

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容