WM_SYSKEYDOWN 没有更新

WM_SYSKEYDOWN not updating

我尝试使用 WM_SYSKEYDOWN 和 WM_SYSKEYUP 作为键盘输入。

这是重要的代码部分。

        case WM_SYSKEYDOWN:
            if (wParam == VK_MENU)      // VK_MENU = 18 = alt keys
            {
                if (!(lParam & (1 << 30)))
                {
                    std::cout << "Pressed left alt key" << std::endl;
                }   
            };
            break;

        case WM_SYSKEYUP:
            if (wParam == VK_MENU)      // VK_MENU = 18 = alt keys
            {
                        std::cout << "Released left alt key" << std::endl;
            };
            break;

如果我按下按钮,我尝试打印一次字符串,然后在释放键时打印另一个字符串。

释放有效,但按下响应 每 2 次按下一次

if (!(lParam & (1 << 30)))

这一行应该中断频繁再次发布字符串。

我不明白为什么...,但我希望如此。

提前致谢!

我没有使用我找到的这个功能。

if (GetAsyncKeyState(VK_LSHIFT) & 0x8000)
{
// Button pressed!
}

效果不错:D