我的Apple MacBook Pro上有多个无线键盘。我正在用C ++开发一个跨平台应用程序,需要知道每个特定键盘的流。
目前我可以通过Dbus和glib在Linux上实现这一目标。在Windows上,我使用rawInput API。在Apple上,我查看了文档,他们讨论了使用HID管理器,但它已被弃用(即Carbon days),而且示例代码似乎不再起作用了。到目前为止,我还没有找到一种方法来连接Mac上的原始键盘流,然后操作系统将它们整合为一体。
任何人都有任何想法或代码示例来从Mac上的多个键盘获取流?
谢谢!
答案 0 :(得分:0)
您可以使用USB HID Manager读取来自每个键盘的原始HID事件,但我不确定它是否会起作用(如果普通应用程序可以读取原始键盘,这似乎是一个很大的安全漏洞事件,嗅探密码等)。您可能需要以root用户身份运行应用程序以访问这些输入设备(如果可能的话)。 HID管理器并不是很难处理,但它没有记录得很好,hidapi是一个非常好的跨平台API,它位于它之上。即使它可能没有公开你需要的所有功能,它仍然是一个很好的例子来看待HID管理器编程。
您可以捕获键盘事件的下一个级别是Quartz Event Taps和kCGHIDEventTap
。从查看这些文档来看,我认为没有办法获得每台设备的事件。