模拟向上箭头keybd_event(不起作用?

Simulating UP arrow keybd_event (not working?)

本文关键字:event 不起作用 keybd 模拟      更新时间:2023-10-16
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);

以下不是自动按下向上箭头并按应有的方式释放它。我做错了什么吗?

keybd_event 函数已过时。它已被 SendInput 函数取代。

以下代码可能会执行所需的操作。

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;
}