1

每次在常规键盘上按下一个键时,都会向计算机发送一个数字“键码”,例如。32 或 51 表示特定键。

与我用来输入这篇文章的默认键盘无关,我希望能够通过 USB 插入键盘,并将其键码全部向上移动一些常数 C。

因此,当按下此侧键盘上的“a”键时,计算机将不会接收到“a”的键码,而是会接收到计算机没有计划响应的某个更高的数字。

这些超出常规范围的击键将控制我的一个程序,该程序知道它们是什么并将监听它们。

硬件或软件解决方案对我有用。也许有为此目的出售的特殊键盘,或者也许一些与软件相关的修改可以让任何常规键盘都可以实现这一点——我不知道。关键是键码转换仅适用于我的侧键盘,而不适用于我用于常规内容的默认键盘。

我在 Windows 上。

4

2 回答 2

1

我认为你对自己的限制远远超过了必要的。

对于初学者,您对 USB 键盘的描述已经简化了很多。情况比这要复杂一些。例如,您实际上得到了按键/按键序列。(也称为通断)。

接下来是您对操作系统对键盘的处理做出假设。如果第二个键盘声称它是 USB 键盘,它将由 USB 键盘的操作系统驱动程序处理。那不会期望改变值。例如,在 Microsoft Windows 上,记录了以下行为:

避免设置 1 扫描代码高于 0x79,因为释放(键向上)代码将是 0xFA 或更大,并且已知键盘驱动程序将此类值解释为来自 8042 芯片的响应,而不是击键(扫描代码)。

接下来,操作系统将假定额外的键盘将提供额外的键,并直接处理它。例如,有可用于笔记本电脑的数字 USB 键盘,而 Windows 只是将它们视为额外的 0-9+-/*= 键。它不在乎它们在不同的硬件上。基本上,我认为第二个键盘的想法不会成功。

现在 USB 通常将键盘视为更通用类的特例,这更灵活:HID = Human Input Devices。. 例如,USB 操纵杆也是人工输入设备,典型的操作系统不会尝试解释操纵杆按钮。游戏应该直接处理它们,你的应用程序也可以。

于 2010-09-14T08:00:37.003 回答
0

听起来你需要更多的硬件解决方案而不是编程解决方案。试试这个http://www.instructables.com/id/Hacking-a-USB-Keyboard/

于 2010-09-14T07:01:24.073 回答