我有两个 USB 鼠标连接到我的 Mac,其中一个用作扫描仪。我需要访问通用 X 和 Y 数据,但我不希望该数据移动光标。在碳或可可环境下,我如何告诉系统忽略鼠标作为指点设备?
编辑:经过一番挖掘,我发现我可以使用 CGAssociateMouseAndMouseCursorPosition() 函数关闭鼠标位置更新,但这不允许我指定单个鼠标。谁能解释 HID 鼠标设备和光标之间的 OS X 关系?在逐个设备的基础上,硬件和软件之间必须有绑定,但我找不到它。
我会考虑为鼠标编写一个基本的用户空间驱动程序。这将允许您将鼠标作为 USB 设备直接访问。您还可以从系统中控制设备以供您独家使用。
这里有一些文档:
为了让您开始,连接到 USB 设备的设置步骤如下(我认为,我的 IOKit 生锈了)
包括<IOKit/IOKitLib.h>和<IOKit/usb/IOUSBLib.h>
IOServiceMatching()
。这使您可以根据其属性(包括供应商 ID 等)找到正确的 USB 设备。(请参阅下面的 IORegistryExplorer 工具屏幕截图)plugin
)IOCreatePlugInInterfaceForService()
plugin
获取设备接口(我们称之为device
)使用(**plugin)->QueryInterface()
device
表示您的 USB 设备的连接句柄——首先使用(**device).USBDeviceOpen
或将其打开(**device).USBDeviceOpenSeize()
。从那里你应该能够发送/接收数据。听起来我知道的很多..可能有更简单的方法,但这就是我想到的。不确定对设备进行这种级别的控制可能有一些好处。祝你好运。