模拟向上箭头keybd_event(不工作?)

时间:2014-10-14 00:14:20

标签: c++ keyboard-events

keybd_event(VK_UP, MapVirtualKey(VK_UP, 0), 0, 0); //pressed
Sleep(100);
keybd_event(VK_UP, MapVirtualKey(VK_UP, 0), KEYEVENTF_KEYUP, 0); //released
Sleep(300);

以下内容不会自动按下向上箭头并按原样释放它。我做错了吗?

1 个答案:

答案 0 :(得分:2)

keybd_event function已过时。它已被SendInput function取代。

以下代码可能会执行您想要的操作。

UINT SendUpArrow()
{
    INPUT input[2] = {0};
    input[0].type = INPUT_KEYBOARD;
    input[0].ki.wVk = VK_UP;
    input[0].ki.dwFlags = 0;
    input[1].type = INPUT_KEYBOARD;
    input[1].ki.wVk = VK_UP;
    input[1].ki.dwFlags = KEYEVENTF_KEYUP;
    UINT ret = ::SendInput(_countof(input), input, sizeof(INPUT));
    return ret;
}