Keyboard 更改USB键盘的按键

Keyboard 更改USB键盘的按键,keyboard,hardware,driver,keystroke,Keyboard,Hardware,Driver,Keystroke,每次在普通键盘上按下一个键,就会向计算机发送一个数字“键代码”,例如代表特定键的32或51 与我用来键入这篇文章的默认键盘无关,我希望能够通过USB插入键盘,并将其按键代码全部上移一些常量C 因此,当按下此侧键盘上的“a”键时,计算机将不会收到“a”的键码,而是收到计算机没有计划响应的某个更高的数字 这些超出常规范围的击键将控制我的一个程序,该程序知道它们是什么,并将监听它们 硬件或软件解决方案适合我。也许有专门为此目的而出售的键盘,或者一些与软件相关的修改可以让任何普通键盘都能做到这一点——我

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

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

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

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

硬件或软件解决方案适合我。也许有专门为此目的而出售的键盘,或者一些与软件相关的修改可以让任何普通键盘都能做到这一点——我不知道。关键的是,键码移位只适用于我的侧键盘,而不适用于我用于普通键盘的默认键盘


我在Windows上。

听起来你需要的是硬件解决方案,而不是编程解决方案。试试这个

听起来你需要的是硬件解决方案,而不是编程解决方案。试试这个

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

首先,您对USB键盘的描述简化了很多。情况比这要复杂一些。例如,您实际上获得了向下键/向上键序列。(也称为接通和断开)

下一件事是,您正在对操作系统对键盘的处理进行假设。如果第二个键盘声称它是USB键盘,它将由USB键盘的操作系统驱动程序处理。这将不需要改变值。例如,在Microsoft Windows上,记录了以下行为:

避免设置1扫描代码高于0x79, 因为发布(密钥更新)代码 为0xFA或更大,并且键盘 众所周知,驾驶员会解释这种情况 值作为来自8042的响应 芯片,而不是按键(扫描代码)

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


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

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

首先,您对USB键盘的描述简化了很多。情况比这要复杂一些。例如,您实际上获得了向下键/向上键序列。(也称为接通和断开)

下一件事是,您正在对操作系统对键盘的处理进行假设。如果第二个键盘声称它是USB键盘,它将由USB键盘的操作系统驱动程序处理。这将不需要改变值。例如,在Microsoft Windows上,记录了以下行为:

避免设置1扫描代码高于0x79, 因为发布(密钥更新)代码 为0xFA或更大,并且键盘 众所周知,驾驶员会解释这种情况 值作为来自8042的响应 芯片,而不是按键(扫描代码)

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


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

烦人的网站。试图向你推销一个“专业会员”网站,这种网站会导致StackOverflow。令人讨厌的网站。试图向你推销一个“专业会员制”,这种网站导致了StackOverflow。