将USB键盘的行为更改或覆盖到更通用的控制器

时间:2011-05-24 21:16:09

标签: language-agnostic keyboard usb midi hid

Changing the keystrokes of a USB keyboard

我的问题与上面的问题非常相似......(没有明确答案)

我有一个很好的USB键盘,我想用它来控制我正在写的音频/视频节目。我无法让USB键盘输入干扰常规操作系统界面 -

因此,我需要让操作系统将其识别为某种通用HID设备,或MIDI设备,或发送OSC信息的东西。

我正在OSX上编写这个程序,但是我想找出一个跨平台的解决方案,它不涉及我黑客攻击键盘的硬件 - 希望我可以使用某种程序或脚本。这样做的原因是我想将这个程序分发给其他人以便轻松使用。

关于从哪里开始的任何想法?我想我可能需要为用户编写一个单独的程序来选择USB设备并将其重新路由到我的程序中......

任何语言都很好 - 我用Python编写代码,有时用C语言和Java / Processing。

2 个答案:

答案 0 :(得分:1)

不幸的是,你会发现这很难做到:大多数现代操作系统会自动检测HID配置文件并为其加载驱动程序,一般来说,很难覆盖默认行为。

如果不破解硬件,您需要以某种方式覆盖操作系统对该特定USB VID(供应商ID)和PID(产品ID)的默认行为,并指示操作系统加载您自己的自定义内核扩展?我建议从http://www.opensource.apple.com/source/IOUSBFamily/IOUSBFamily-206.4.1/AppleUSBKeyboard/的AppleUSBKeyboard驱动程序源开始,然后找出如何安装自定义版本作为特定键盘的VID和PID的首选USB驱动程序。在那之后它应该是杂乱乱糟糟的杂乱问题,只发送密钥到你的应用程序而不是其他任何东西。

答案 1 :(得分:0)

  

是否可以写一个   禁用常规的功能   操作系统键盘输入   除ESC之外的所有键if   我的节目是焦点? - 杰弗里梅   24时21分59秒

是的,这应该是可能的,我不知道Mac,但在Win32上你想要一个全局键盘钩子(查看SetWindowsHookEx)