如何添加自定义菜单,右键单击文件/文件夹以编程方式在c + + / QT?

我们有一个应用程序,像保pipe箱一样同步文件和文件夹。 这是一个基于c ++ / QT的安装程序。

我们想添加一个文件或文件夹的右键上下文菜单中的自定义菜单,就像Dropbox在下面的屏幕截图中所做的一样。

我们针对Windows和Mac平台。 任何人都可以build议我如何开始呢?

在这里输入图像说明

在Mac上,您将遇到问题,因为添加到常规Finder上下文菜单已被弃用。

所以,你可能会想,如果它被弃用,那么Dropbox如何做到这一点? 从我过去研究的内容来看,我相信他们使用代码注入来注入正在运行的Finder应用程序的地址空间,然后使用Objective-C特性(称为方法调整(swizzling))将方法更改为自己的方法在注入的代码中。

这是相当硬核和非常低的水平,但如果你要去旅程,你可以开始看一个名为mach_inject的图书馆和谷歌搜索。 源代码可以在这里找到: –

https://github.com/rentzsch/mach_inject

但是,请注意,有些人认为代码注入是错误的,将不会安装Dropbox或任何其他使用它的软件。 另外,如果您计划在Mac Store中发布产品,我不希望任何执行代码注入的应用程序被允许。