I’m looking for application-wide access to raw keyboard events in OS X, either using the Cocoa or Carbon frameworks (or any of the underlying APIs, for that matter). I know that I can override NSApplication’s sendEvent: to get raw keyboard information, but for the meta keys (command, control, alternate, shift, etc) don’t show up as keystroke events. I’m looking for something analogous to Microsoft’s DirectInput framework.
Thanks!
I think the equivalent to DirectInput is HID Manager. HID stands for ‘human interface device’ and HID Manager (sometimes called HIDLib) is the low-level API to HIDs: keyboards, mice, and joysticks.
Leopard’s got a new HID Manager API, documented in Technical Note TN2187. The pre-Leopard API is documented in HID Class Device Interface Guide. I wrote an Objecive-C wrapper around the older APIs, DDHidLib, which you may find useful. The Leopard API is much nicer. I’d use that directly, if you can.