我需要模拟向上箭头键,所以我用sendinput,我看到https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx上箭头键是0x26,但问题是,程序模拟按下“L”,没有向上的箭头键,为什么? 下面是代码:SendInput,为什么不模拟向上箭头键?
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.wVk = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.dwFlags = KEYEVENTF_SCANCODE;
ip.ki.wScan =0x26; //UP ARROW key
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
'SendInput()'返回什么?什么['getLastError()'](https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms679360%28v=vs.85%29.aspx)说? – YSC
发送一个个事件总是一个错误。创建一个数组并通过一次调用将其注入到'SendInput'中。这在文档中有解释。我不相信你仔细阅读过。 –
而且值得一提的是,这里没有关于扫描码的细节。在这种情况下,移除KEYEVENTF_SCANCODE并使用虚拟键码“VK_UP”。 –