【问题标题】:How to add custom menu upon right click on file / folder programmatically in c++ / QT?如何在 C++/QT 中以编程方式右键单击文件/文件夹时添加自定义菜单?
【发布时间】:2013-05-07 04:09:01
【问题描述】:

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

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

我们的目标是 Windows 和 Mac 平台。谁能建议我如何开始?

【问题讨论】:

    标签: c++ windows macos qt contextmenu


    【解决方案1】:

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

    所以,您可能会想,如果它已被弃用,那么 Dropbox 是如何做到这一点的呢?根据我过去的研究,我相信他们使用代码注入来注入正在运行的 Finder 应用程序的地址空间,然后使用称为方法混合的 Objective-C 功能将调用方法更改为他们自己的方法,该方法位于在注入的代码中。

    这都是相当硬核且非常低级的,但如果您要继续这一旅程,您可以从查看一个名为 mach_inject 的库开始并在谷歌上搜索它。源代码可以在这里找到:-

    https://github.com/rentzsch/mach_inject

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

    【讨论】:

    • 感谢您的回复。对 windows 有什么建议吗?
    • 如果你在谷歌上搜索“Windows 添加到上下文菜单”,它看起来只是一组要添加的注册表项。
    【解决方案2】:
    猜你喜欢
    • 2017-02-17
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多