2

更改 USB 键盘的击键

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

我有一个不错的 USB 键盘,我想用它来控制我正在编写的音频/视频程序。我不能让 USB 键盘输入干扰常规操作系统界面 -

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

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

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

任何语言都可以——我用 Python 编写代码,有时用 C 和 Java/Processing。

4

2 回答 2

1

不幸的是,您会发现这非常难以做到:大多数现代操作系统会自动检测 HID 配置文件并为其加载驱动程序,并且通常很难覆盖该默认行为。

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

于 2011-05-24T21:31:48.327 回答
0

如果我的程序处于焦点位置,是否可以编写一个函数来禁用除 ESC 之类的所有键的常规操作系统键盘输入?– 杰弗里 5 月 24 日 21:59

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

于 2011-06-01T02:34:32.040 回答