9

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

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

4

1 回答 1

1

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

这里有一些文档:

使用 USB 设备接口

为了让您开始,连接到 USB 设备的设置步骤如下(我认为,我的 IOKit 生锈了)

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

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

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

IORegistryExplorer 屏幕截图

于 2012-04-28T01:25:37.940 回答