【问题标题】:Multiple Keyboards - Grab each stream - On Macs - How?多个键盘 - 抓取每个流 - 在 Mac 上 - 如何?
【发布时间】:2012-03-02 14:04:37
【问题描述】:

我的 Apple MacBook Pro 上有多个无线键盘。我正在用 C++ 开发一个跨平台应用程序,它需要知道每个特定键盘的流。

目前我可以通过 Dbus 和 glib 在 Linux 上完成此任务。在 Windows 上,我使用 rawInput API。在 Apple 上,我查看了文档,他们谈论使用 HID 管理器,但它已被弃用(即 Carbon 日),而且示例代码似乎不再起作用。到目前为止,我还没有找到一种方法来连接 Mac 上的原始键盘流,然后操作系统会将它们全部整合为一个。

任何人有任何想法或代码示例来从 Mac 上的多个键盘获取流?

谢谢!

【问题讨论】:

    标签: c++ macos keyboard


    【解决方案1】:

    您也许可以使用 USB HID Manager 读取来自每个键盘的原始 HID 事件,但我不确定这是否可行(如果普通应用程序可以读取原始键盘事件,这似乎是一个很大的安全漏洞,嗅探密码等)。如果可能的话,您可能需要以 root 身份运行您的应用程序才能访问这些输入设备。 HID Manager 使用起来还不错,但它并没有很好地记录,hidapi 是一个非常好的跨平台 API,它位于它之上。即使它可能没有提供您需要的所有功能,它仍然是 HID 管理器编程的一个很好的示例。

    您可以使用Quartz Event TapskCGHIDEventTap 捕获键盘事件的下一个级别。不过,通过查看这些文档,我认为没有办法获取每个设备的事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-11
      • 2011-11-02
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多