我目前正在为我的大学做一个研究项目。目标是使用 Microsoft Kinect 摄像头控制 Mac。另一个学生正在编写 Kinect 驱动程序(它将安装在 Mac 后面的天花板或墙壁上的某个位置,并输出 Mac 屏幕上所有手指的位置)。
我有责任使用这些手指位置并对它们做出反应。目标是用一根手指控制鼠标,并以相同的方式对多根手指做出反应,就像它们在触控板上一样。
我认为这将是简单而直接的,但事实并非如此。使用一根手指(使用 CGEvent)控制鼠标光标实际上非常容易,但不幸的是,没有用于创建多点触控手势并将其发布到系统的公共 API。
我做了很多研究,包括在尽可能低的位置使用事件点击捕获所有 CGEvents 并尝试拆卸它们,但到目前为止还没有真正的进展。
然后我偶然发现了这一点并意识到,即使是事件点击的最低位置也不够深: 扩展魔术鼠标的功能:我需要一个 kext 吗?
如果我做对了,内置的触控板(以及 MagicMouse 和 MagicTrackpad)通过 KEXT-Kernel-Extension 与私有 MultitouchSupport-framework 进行通信,该框架正在以某种方式生成传入数据并将其发布到操作系统。
所以我需要使用 MultitouchSupport.framework 中的私有 API 来做与触控板一样的事情,对吧?或者我需要写一个KEXT-Extension?
如果我需要使用 MultitouchSupport-framework:我如何反汇编它以获得私有 API?(我知道类转储,但这只适用于 Objective-C 框架,而这个框架不是)
非常感谢您的任何回复!下一个。