Mac OSx:向Finder上下文菜单注入项目

4
在10.5版本中,我们原生支持上下文菜单插件。这样可以在运行时添加项,并针对不同的文件类型添加不同的菜单。

但是自10.6及更高版本以来,我们具有上下文菜单服务,它们不允许子菜单,并且如果我们想根据位置或文件类型在运行时添加不同的上下文菜单项,则无法帮助我们。

这导致我需要进行一些代码注入到Finder中(就像DropBox所做的那样),但我对这个特定任务还比较新,但我愿意尝试。有人能给我一个起点吗?

感谢您的关注。

可能是如何编写OS X Finder插件的重复问题。 - nos
2个回答

5
你可以从 mach_star 开始。mach_star 是一个开源代码套件,用于在非常低的级别上抑制、替换和/或扩展 Mac OS X 功能。它的主要组成部分是 mach_override(在运行时替换和/或扩展现有函数)和 mach_inject(动态加载您的代码到正在运行的进程中)。

有没有使用mach_star的示例?我无法弄清楚如何将mach_inject集成到我的Cocoa应用程序中。谢谢! - Laurent Crivello
从https://github.com/rentzsch/mach_star下载代码并以root模式运行DisposeWindow+Beep_Injector。现在检查您的finder打开的文件和端口。 - Parag Bafna

2

在OS X 10.9.x之前,仅通过mach_inject向Finder进程注入代码是一种解决方案(即使Dropbox也这样做)。但是自从10.10以来,有了Finder插件,可以自定义上下文菜单,向工具栏添加按钮并在文件图标上叠加覆盖。

更新:由于系统完整性保护,自OS X 10.11起,代码注入将根本不起作用。因此只能使用Finder Sync插件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接