我有两个键盘连接到我的电脑上:一个标准的全尺寸键盘和一个数字键盘。我想“重新映射”数字键盘上的按键,但不影响整个键盘。因此,当用户在数字键盘上按下“5”时,它会被重新映射为“媒体播放”键,但如果在全尺寸键盘上按下相同的“5”,我将得到一个“5”。实质上,我想把那个单独的数字键盘变成一个媒体控制设备。
不幸的是,我不知道如何做到这一点。Windows 有一个“原始输入”功能,可以区分键盘,但只能读取按键 - 不能重新映射它们。有键盘钩子(低级和高级)可以重新映射按键,但它们不能区分键盘。
我可以让这两种方法结合起来吗?为此,我必须确保原始输入消息在键盘钩子启动之前被处理。是这样吗?
此外,我已经了解到,由于某种原因,Windows 不允许在同一进程中使用原始输入和键盘钩子。我可以通过创建两个不同的进程来解决这个问题,但这会因通信延迟而变得更加脆弱(键盘钩子必须在非常有限的时间内完成它们的工作)。
这真的可行吗?
不幸的是,我不知道如何做到这一点。Windows 有一个“原始输入”功能,可以区分键盘,但只能读取按键 - 不能重新映射它们。有键盘钩子(低级和高级)可以重新映射按键,但它们不能区分键盘。
我可以让这两种方法结合起来吗?为此,我必须确保原始输入消息在键盘钩子启动之前被处理。是这样吗?
此外,我已经了解到,由于某种原因,Windows 不允许在同一进程中使用原始输入和键盘钩子。我可以通过创建两个不同的进程来解决这个问题,但这会因通信延迟而变得更加脆弱(键盘钩子必须在非常有限的时间内完成它们的工作)。
这真的可行吗?
install-interception.exe /install
。 - Vilx-