我正在尝试编写一个简单的命令行程序,它将给定键盘上的击键发送到UDP服务器。我正在使用IOKit
框架及其IOHIDManager
类对OSX进行编程。
出于我的程序的目的,我想在打开kIOHIDOptionsTypeSeizeDevice
实例时使用IOHIDManager
并使用IOHIDManagerRegisterInputValueCallback
在回调设置中发送UDP消息。
当我通过IOHIDManagerSetDeviceMatching
功能设置过滤以匹配MacBook Pro的内部键盘时,一切正常:按键不会再传递到焦点应用程序,而且事件通过UDP正确发送。< / p>
当我尝试匹配USB读卡器(http://www.gitak.com/GIT-200USB.PDF)时,一切正常,直到刷卡时设备发送的第一个事件。在第一个字符之后,不再调用已注册的回调。
更确切地说:
kIOHIDOptionsTypeSeizeDevice
kIOHIDOptionsTypeNone
而不是kIOHIDOptionsTypeSeizeDevice
的读卡器时,所有内容都按预期工作(即使事件仍然传递到有针对性的应用程序)可以在这里找到相对简单的程序:
https://gist.github.com/3783042
如何修改它以便在发送第一个事件后不会导致读卡器无响应?
答案 0 :(得分:0)
事实证明,这是设备有缺陷。我点了一个新的,现在一切正常!