你能重新映射特定键盘的键吗?

时间:2012-12-06 11:26:12

标签: windows keyboard-hook raw-input

我的计算机上连接了两个键盘。普通的全尺寸键盘和数字键盘。我想“重新映射”数字小键盘上的按键,但只留下全键盘。因此,当用户按下键盘上的“5”时,它将被重新映射到“Media Play”键,但如果在全键盘的键盘上按下相同的“5”,我将得到“5”。实质上,我想将这个单独的数字小键盘变成媒体控制设备。

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

我可以将这两种方法组合起来吗?为此,我必须确保在键盘钩子启动之前处理原始输入消息。是这样吗?

另外,我已经读过Windows出于某种原因不允许在同一进程中使用Raw Input和Keyboard Hooks。我可以通过制作两个不同的进程来解决这个问题,但是由于通信延迟而变得更加脆弱(键盘钩子在他们必须完成工作的时间非常有限)。

这可行吗?

3 个答案:

答案 0 :(得分:3)

最后我发现我需要一个自定义键盘驱动程序来实现这一目标。幸运的是,我发现一个准备好了 - Interception。该应用程序准备就绪,完美无缺。 :)

答案 1 :(得分:0)

我认为luamacros(以前hidmacros可以做您想做的事情,并提供源代码。

答案 2 :(得分:-1)

在本文中,http://vlaurie.com/computers2/Articles/remap-keyboard.htm解释了如何重新映射键盘的键。希望有所帮助。