windows - 您可以重新映射特定键盘的按键吗?

标签 windows keyboard-hook raw-input

我的电脑上连接了两个键盘。一个普通的全尺寸键盘和一个数字小键盘。我想“重新映射”数字键盘上的键,但不使用全键盘。因此,当用户在键盘上按下“5”时,它会被重新映射到“媒体播放”键,但如果在全键盘的键盘上按下相同的“5”,我会得到一个“5”。本质上,我想把那个独立的数字小键盘变成一个媒体控制设备。

不幸的是,我不确定如何进行这项工作。 Windows 有一个“原始输入”功能,可以区分键盘,但只允许读取键 - 不能重新映射它们。有键盘钩子(Hook)(低级和高级)可以重新映射击键,但它们不区分键盘。

我可以结合使用这两种方法吗?为此,我必须确保在键盘 Hook 启动之前处理原始输入消息。是这样吗?

此外,我了解到 Windows 出于某种原因不允许在同一进程中使用原始输入和键盘 Hook 。我可以通过创建 2 个不同的流程来解决这个问题,但由于通信延迟(键盘 Hook 必须在非常有限的时间内完成工作),这变得更加脆弱。

这完全可行吗?

最佳答案

最后证明我需要一个自定义键盘驱动程序来完成此操作。幸运的是,我找到了一个可以拿走的 - Interception .该应用程序已准备就绪并且可以完美运行。 :)

关于windows - 您可以重新映射特定键盘的按键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13742630/

相关文章:

c++ - (Windows HID API)HidD_GetPreparsedData() 由于句柄不正确而在 WM_INPUT 消息处理程序中失败?

c - 允许程序特权在启动时从任何帐户更改 PC 名称?

c++ - 获取 C++ 函数的大小

Windows 驱动程序 - 如何确定 Windows 是否正在启动或已经启动?

c# - 全局低级键盘 Hook - Race Condition

python - 在 Python 中通过管道传输到 raw_input()

windows - 从批处理文件触发任务栏按钮闪烁?

c++ - 在 X11 中监听键盘事件而不消耗它们 - 键盘 Hook

keyboard-shortcuts - Adobe AIR 键盘 Hook

python退出阻塞线程?