1

我的应用程序使用事件点击来捕获键盘事件,我想知道每个事件来自哪个设备(即哪个键盘)。是否有一种设备识别信息以及点击获得的 CGEvent ?我查看了 NSEvent 的方法和各种 CGEventField 键,但它们似乎都不是设备唯一的。有什么帮助吗?

4

2 回答 2

6

您可能想看看 DDHidLib,这是 Dave Dribin 的优秀框架,可独立使用 USB HID 设备。

http://www.dribin.org/dave/blog/archives/2007/03/19/ddhidlib_10

(不仅仅是关于操纵杆,所以请阅读该博客文章的第一段以外的内容)

DDHidLib 的某些功能在 Leopard 下不再适用,因为 Apple 对捕获 HID 设备存在一些安全问题,但如果幸运的话,它可能会为您提供所需的东西。

于 2008-10-21T22:25:08.840 回答
3

DDHidLib 很简洁,事实上我为 Delicious Library 2 为 Leopard 的较新的 HID API 重写了部分内容,并将更改提交给原作者——如果你写他,你可以获得 Leopard 专用的示例代码。

不幸的是,新的 Leopard HID API 能够在键盘事件经过时达到峰值,但不能拦截它们,因此您无法构建自己的应用程序级设备处理程序,除非按键事件也可以发生AppKit 也是如此。(这就是为什么当你在 Delicious Library 2 中使用 USB 条码扫描仪时会出现 BONKING 噪音的原因 - 我在扫描仪上达到峰值并读取条码,但随后打字仍然发送到最上面的窗口,它不需要它,并且哔哔声很多。叹息。)

-会

于 2008-10-23T01:12:06.770 回答