代码之家  ›  专栏  ›  技术社区  ›  kevingessner

来自NSEvent/CGEvent的设备信息

  •  1
  • kevingessner  · 技术社区  · 17 年前

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

    2 回复  |  直到 17 年前
        1
  •  6
  •   Dirk Stoop    17 年前

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

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

    (不仅仅是关于操纵杆,所以多读那篇博客文章的第一段)

    由于苹果公司对捕获HID设备的一些安全问题,DDHidLib的一些功能在Leopard下不再有效,但如果你幸运的话,它可能会为你提供你需要的东西。

        2
  •  3
  •   Wil Shipley    17 年前

    DDHidLib很整洁,事实上,我为Leopard较新的HID API的Delicious Library 2重写了它的一部分,并将更改提交给了原作者——如果你写了他,你就可以得到仅Leopard的示例代码。

    不幸的是,新的Leopard HID API能够在键盘事件经过时达到峰值,但不能拦截它们,因此除非关键事件也会进入AppKit,否则您无法构建自己的应用程序级设备处理程序。(这就是为什么当你在Delicious Library 2中使用USB条形码扫描仪时,会有一种捆绑噪音——我在扫描仪前达到峰值并读取条形码,但随后打字仍然会被发送到最顶部的窗口,窗口不想要它,并发出很多嘟嘟声。叹气。)

    -威尔