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