我的应用程序使用事件点击来捕获键盘事件,我想知道每个事件来自哪个设备(即哪个键盘)。有没有一种设备识别信息以及点击得到的CGEvent?我看过NSEvent的方法和各种CGEventField键,但它们似乎都不是设备唯一的。有什么帮助吗?
您可能想看看DDHidLib,它是Dave Dribin独立使用USB HID设备的优秀框架。
http://www.dribin.org/dave/blog/archives/2007/03/19/ddhidlib_10
(不仅仅是关于操纵杆,所以阅读更多的博客文章的第一段)
DDHidLib的一些功能在Leopard下不再工作,因为苹果公司在捕获HID设备方面存在一些安全问题,但如果你幸运的话,它可能会为你提供你需要的东西。
DDHidLib非常简洁,事实上,我为Leopard的新HID API为Delicious Library 2重写了其中的部分内容,并将更改提交给了原作者——如果你给他写,你可以获得Leopard独有的示例代码。
不幸的是,新的Leopard HID API能够在键盘事件经过时达到峰值,但不能拦截它们,因此您无法构建自己的应用程序级设备处理程序,除非关键事件也进入AppKit。(这就是为什么当你在Delicious Library 2中使用USB条形码扫描仪时会有BONKING噪音的原因——我在扫描仪上达到峰值并读取条形码,但随后打字仍然被发送到最上面的窗口,它不需要它,并发出很多哔哔声。叹气。)
-Wil