我的电脑上有两个键盘。一个普通的全尺寸键盘和一个数字小键盘。我想“重新映射”数字小键盘上的键,但不理会全键盘。因此,当用户在键盘上按下“5”时,它会重新映射到“Media Play”键,但如果在全键盘的键盘上按下相同的“5”,我会得到“5”。本质上,我想把那个单独的数字键盘变成一个媒体控制设备。
不幸的是,我不确定如何完成这项工作。Windows 有一个“原始输入”功能,可以区分键盘,但只允许读取键 - 而不是重新映射它们。有键盘钩子(低级和高级)可以重新映射击键,但它们不区分键盘。
我可以将这两种方法结合起来吗?为此,我必须确保在键盘钩子启动之前处理原始输入消息。是这样吗?
另外,我读到 Windows 出于某种原因不允许在同一进程中使用原始输入和键盘挂钩。我可以通过创建 2 个不同的进程来解决这个问题,但由于通信延迟(键盘挂钩必须完成工作的时间非常有限),这变得更加脆弱。
这完全可行吗?