macos - 在 OS X 中生成和发布多点触控事件以使用外部摄像头控制 Mac

标签 macos multi-touch kinect trackpad

我目前正在为我的大学做一个研究项目。目标是使用 Microsoft Kinect 摄像头控制 Mac。另一个学生正在编写 Kinect 驱动程序(它将安装在 Mac 后面的天花板或墙壁上的某个位置,并输出 Mac 屏幕上所有手指的位置)。

我有责任使用这些手指位置并对它们使用react。目标是用一根手指控制鼠标,并以相同的方式对多根手指使用react,就像它们在触控板上一样。

我认为这将是简单而直接的,但事实并非如此。使用一根手指(使用 CGEvent)控制鼠标光标实际上非常容易,但不幸的是,没有用于创建多点触控手势并将其发布到系统的公共(public) API。

我做了很多研究,包括在尽可能低的位置使用事件点击捕获所有 CGEvents 并尝试拆卸它们,但到目前为止还没有真正的进展。

然后我偶然发现了这一点并意识到,即使是事件水龙头的最低位置也不够深:
Extending Functionality of Magic Mouse: Do I Need a kext?

如果我做对了,内置的触控板(以及 MagicMouse 和 MagicTrackpad)通过 KEXT-Kernel-Extension 与私有(private) MultitouchSupport-framework 进行通信,该框架正在以某种方式生成传入数据并将其发布到操作系统。

所以我需要使用 MultitouchSupport.framework 中的私有(private) API 来做与触控板一样的事情,对吧?
或者我需要写一个KEXT-Extension?

如果我需要使用 MultitouchSupport 框架:
如何反汇编它以获得私有(private) API? (我知道类转储,但这只适用于 Objective-C 框架,而这个框架不是)

非常感谢您的任何回复!
下一个。

最佳答案

“目标是使用一根手指来控制鼠标并以相同的方式对多根手指使用react”如果我了解您想要做的是您尝试从 Kinect 跟踪手指。但问题是 Kinect 只捕获主要的 body 关节。但是我猜你可以用其他第三方库来做到这一点。这是我看到的一个示例项目。但它适用于 window 。试着了解大局http://channel9.msdn.com/coding4fun/kinect/Finger-Tracking-with-Kinect-SDK-and-the-Kinect-for-XBox-360-Device

关于macos - 在 OS X 中生成和发布多点触控事件以使用外部摄像头控制 Mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6699165/

相关文章:

macos - Jetbrains 0xDBe : Connecting to SQL Server using Windows Authentication?

objective-c - 两根手指点击 UIButton

java - Android 多点触控 - 中指 ACTION.MOVE 被忽略

sdk - 如何使用 Microsoft Kinect for Windows SDK ver 1.7 C# 检测张开/闭合的手

objective-c - 在界面生成器中将列添加到 nstableview

macos - 在 OS X Yosemite 上构建 binutils 的交叉编译

java - 如何使用 tuio 调用按钮的监听器?

python - 如何在一维数组中找到峰

c# - 如何在C#中让鼠标按住右键单击

objective-c - 以编程方式重命名 NSDocument 文件时防止警告