Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多个键盘-抓住每个流-在Mac上-如何?_C++_Macos_Keyboard - Fatal编程技术网

C++ 多个键盘-抓住每个流-在Mac上-如何?

C++ 多个键盘-抓住每个流-在Mac上-如何?,c++,macos,keyboard,C++,Macos,Keyboard,我的Apple MacBook Pro上有多个无线键盘。我正在开发一个C++平台的跨平台应用程序,需要知道每个特定键盘的流。 目前,我可以通过Dbus和glib在Linux上实现这一点。在Windows上,我使用rawInput API。在Apple上,我看了文档,他们谈到使用HID管理器,但它已被弃用(如碳天),而且示例代码似乎不再有效。到目前为止,我还没有找到一种方法来连接Mac上的原始键盘流,直到操作系统将其整合为一个整体 有人有任何想法,或代码示例来获取Mac上多个键盘的数据流吗 谢谢

我的Apple MacBook Pro上有多个无线键盘。我正在开发一个C++平台的跨平台应用程序,需要知道每个特定键盘的流。 目前,我可以通过Dbus和glib在Linux上实现这一点。在Windows上,我使用rawInput API。在Apple上,我看了文档,他们谈到使用HID管理器,但它已被弃用(如碳天),而且示例代码似乎不再有效。到目前为止,我还没有找到一种方法来连接Mac上的原始键盘流,直到操作系统将其整合为一个整体

有人有任何想法,或代码示例来获取Mac上多个键盘的数据流吗


谢谢

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


您可以捕获键盘事件的下一个级别是使用和
kCGHIDEventTap
。但是,从这些文档来看,我认为没有办法获取每个设备的事件。

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

您可以捕获键盘事件的下一个级别是使用和
kCGHIDEventTap
。但是,从这些文档来看,我认为没有办法获得每个设备的事件