【发布时间】:2014-12-14 16:09:16
【问题描述】:
我试图在不确定的时间内按住箭头键并在此之后释放它。 伪代码:
SendKey(VK_RIGHT, KEY_DOWN);
// Do something
SendKey(VK_RIGHT, KEY_UP)
我使用 Visual Studio 2012 和 Windows 7-64 位。 我已经搜索了很多时间并尝试了这样的事情:
#include <Windows.h>
#include <WinUser.h>
using namespace std;
[...]
INPUT Event = {0};
Event.type = INPUT_KEYBOARD;
Event.ki.dwFlags = 0;
Event.ki.wScan = ::MapVirtualKey(VK_RIGHT, MAPVK_VK_TO_VSC);
Event.ki.time = 2000; // hold 2 sek. ?
Event.ki.dwExtraInfo = 0;
Event.ki.wVk = VK_RIGHT; // (Right-Arrow)
SendInput(1, &Event, sizeof(Event)); // hold
Sleep(1000); // do something (waiting in this case)
Event.ki.dwFlags = KEYEVENTF_KEYUP; // release
SendInput(1, &Event, sizeof(Event));
但这并没有达到预期的效果,我不知道出了什么问题。 键被正确按下,但未按住。 提前致谢。
【问题讨论】:
-
只是一个观察,你真的应该使用
VK_符号而不是幻数。