更改USB键盘的击键

时间:2010-09-14 06:25:07

标签: keyboard hardware driver keystroke

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

与我用来输入此帖子的默认键盘无关,我希望能够通过USB插入键盘并使其键码全部向上移动一些常数C.

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

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

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

我在Windows上。

2 个答案:

答案 0 :(得分:1)

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

首先,您对USB键盘的描述会大大简化。情况比这复杂一点。例如,您实际上获得了按键/按键序列。 (也称为成败)。

接下来是您正在假设操作系统处理键盘。如果第二个键盘声称它是一个USB键盘,它将由USB键盘的OS驱动程序处理。这不会指望转移价值。例如,在Microsoft Windows上,记录了以下行为:

  

避免设置1个扫描码高于0x79,   因为发布(密钥向上)代码会   是0xFA或更大,以及键盘   众所周知,司机会这样解释   价值作为8042的回应   芯片,而不是击键(扫描码)。

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

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

答案 1 :(得分:0)

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