gpt4 book ai didi

winapi - 是否可以在原始输入中吞下一个键?

转载 作者:行者123 更新时间:2023-12-04 21:45:35 24 4
gpt4 key购买 nike

我正在使用 Raw Input API 因为我需要能够以不同的方式响应来自不同 USB HID 设备的 key ,即使它是同一个 key 。

我的窗口收到 WM_INPUT消息正确。我可以检索 RAWKEYBOARD structure获取我需要的所有信息。

现在我想阻止那些 USB 设备能够切换 NumLock。我希望原始输入 API 可以让我吞下 NumLock 按键?

我尝试将 WM_INPUT 消息的 Result 设置为 1,但这似乎没有效果。

(我是用 C# 编写的,但由于这都是低级 Windows API,你可能不需要 C# 或 .NET 知识来回答这个问题。)

编辑:哦,是的,我还尝试使用全局键盘 Hook (SetWindowsHookEx) 来吞下 NumLock 按键。不幸的是,当我初始化原始输入 API 时,在窗口处于事件状态时不再调用全局键盘 Hook 。我也尝试在原始输入之后设置全局 Hook ,但效果相同。

最佳答案

原始输入 API 不支持吞咽按键。

此外,它不与 SetWindowsHookEx 交互。在同一个过程中。一旦原始输入 API 被初始化,钩子(Hook)就被解开。

解决方案是将它们放在不同的进程中。一个进程可以使用SetWindowsHookEx吞下不需要的键,而另一个使用原始输入 API 来处理确实通过的按键。然后你只需运行两者。这对我来说很好。

关于winapi - 是否可以在原始输入中吞下一个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com