我在Sleep()之后执行SendInput()函数时遇到问题。我一直在寻找解决方案的日子,空手而归。这是我的代码:
void Form1::GenerateKey (int vk) {
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = MapVirtualKey(vk,MAPVK_VK_TO_VSC);
ip.ki.wVk = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.dwFlags = KEYEVENTF_SCANCODE;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
所以,当我执行Sleep(2000); GenerateKey(0x46);
时,它不起作用,但仅调用GenerateKey(0x46);
。
值得一提的是,如果我在睡觉时按下一个键,它就会起作用。