11

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

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

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

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

这完全可行吗?

4

3 回答 3

5

最后结果证明我需要一个自定义键盘驱动程序来完成这个。幸运的是我找到了一个可以接受的——拦截。该应用程序已准备就绪并且可以完美运行。:)

于 2013-04-05T11:22:18.870 回答
0

我认为luamacros(以前的 hidmacros可以做你想做的事,并且有可用的源代码。

于 2017-07-08T06:35:47.073 回答
-3

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

于 2013-04-05T10:42:11.900 回答