如何告诉OS X忽略来自两个连接的USB鼠标之一的输入?

Jef*_*eff 9 macos usb mouse hid

我有两个USB鼠标连接到我的Mac,其中一个我用作扫描仪.我需要访问Generic X和Y数据,但我不希望该数据移动光标.在碳或可可环境下,我如何告诉系统忽略鼠标作为指针设备?

编辑:经过一些挖掘,我发现我可以用CGAssociateMouseAndMouseCursorPosition()函数关闭鼠标位置更新,但这不允许我指定一个鼠标.任何人都可以解释HID鼠标设备和光标之间的OS X关系吗?必须在逐个设备的基础上在硬件和软件之间进行绑定,但我找不到它.

nie*_*bot 1

我会考虑为鼠标编写一个基本的用户空间驱动程序。这将允许您将鼠标作为 USB 设备直接访问。您还可以从系统控制设备供您专用。

这里有一些文档:

使用 USB 设备接口

首先,连接到 USB 设备的设置步骤如下(我想,我的 IOKit 生锈了)

包括<IOKit/IOKitLib.h>和<IOKit/usb/IOUSBLib.h>

  1. 找到您有兴趣使用的设备IOServiceMatching()。这使您可以根据其属性(包括供应商 ID 等)选择正确的 USB 设备。(请参阅下面的 IORegistryExplorer 工具屏幕截图)
  2. 获取一个 USB 插件实例(我们称之为pluginIOCreatePlugInInterfaceForService()
  3. 使用plugin第 2 步中的方法获取设备接口(我们称之为device(**plugin)->QueryInterface()
  4. device代表 USB 设备的连接句柄——首先使用(**device).USBDeviceOpen或打开它(**device).USBDeviceOpenSeize()。从那里您应该能够发送/接收数据。

听起来我知道很多......并且可能有一种更简单的方法,但这就是我想到的。不确定对设备进行这种级别的控制可能会带来一些好处。祝你好运。

IORegistryExplorer 屏幕截图