代码之家  ›  专栏  ›  技术社区  ›  Stephen Deken

直接访问OSX中的键盘事件

  •  8
  • Stephen Deken  · 技术社区  · 17 年前

    我正在寻找对OSX中原始键盘事件的应用程序范围的访问,可以使用Cocoa或Carbon框架(或者任何底层API)。我知道我可以覆盖NSApplication的sendEvent:以获取原始键盘信息,但对于元键(command、control、alternate、shift等),不会显示为击键事件。我正在寻找类似于微软DirectInput框架的东西。

    4 回复  |  直到 17 年前
        1
  •  10
  •   Dave Dribin    17 年前

    我认为等同于DirectInput的是HID管理器。HID代表“人机界面设备”,HID管理器(有时称为HIDLib)是HID的低级API:键盘、鼠标和操纵杆。

    Technical Note TN2187 . Leopard之前的API记录在 HID Class Device Interface Guide . 我围绕旧的API编写了一个Objecive-C包装器, DDHidLib ,你可能会发现这很有用。Leopard API是 更好。如果可以的话,我会直接用。

        2
  •  5
  •   Greg    17 年前

    作为远程操作系统的一部分,核心图形框架还具有一些有用的功能。查找CGRemoteOperation.h,并检查 Quartz Events reference

    您可以使用Quartz Events系统来安装特定于应用程序或系统范围的“事件点击”,这使您能够在相当低的级别上监视和注入键盘和鼠标事件。几年前,在特定于应用程序的事件点击中出现了一些bug,但现在有望解决这些bug。

    我认为HID主要是用于驱动程序开发的,所以如果你只是在为你的应用程序寻找一个工具,那么HID可能太过了。

        3
  •  3
  •   Christian Specht    14 年前

    NSResponder 派生类有一个方法 -(void)flagsChanged :按下元键时调用的。

        4
  •  1
  •   Nick Haddad    17 年前