【问题标题】:Changing the keystrokes of a USB keyboard更改 USB 键盘的击键
【发布时间】:2011-04-12 00:22:57
【问题描述】:

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

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

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

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

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

我在 Windows 上。

【问题讨论】:

    标签: keyboard hardware driver keystroke


    【解决方案1】:

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

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

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

    避免设置 1 扫描代码高于 0x79, 因为释放(键)代码会 为 0xFA 或更大,键盘 众所周知,司机会解释这样的 值作为来自 8042 的响应 芯片,而不是击键(扫描代码)。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 烦人的网站。试图向您推销“专业会员”,即导致 StackOverflow 的那种网站。
      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2011-05-12
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      相关资源
      最近更新 更多