【问题标题】:How to add command to right-click menu of certain extension programmatically?如何以编程方式将命令添加到某些扩展的右键菜单?
【发布时间】:2010-07-13 16:15:42
【问题描述】:

我创建了 2 个 exe 文件:open.exe 和 edit.exe。和一个新的扩展名:比如 .newext。

现在我想

  1. 通过双击打开 .newext 文件打开 exe。
  2. 右键单击 .newext 文件获得一个菜单,其中粗体显示为“打开”,下方显示为“编辑”。点击“编辑”,edit.exe 会打开 .newext 文件。
  3. 以编程方式执行此操作,以便它可以在尽可能多的平台上工作 (至少在 Xp、Vista 和 Win7 上)。

我怎样才能做到这一点?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    您必须在注册表中编辑类树(使用来自AdvApi32.dll 的注册表函数)。以下内容未经测试,我无法理解:

    • 基本密钥是 HKEY_LOCAL_MACHINE\Software\Classes 用于系统范围的设置,HKEY_CURRENT_USER\Software\Classes 用于用户特定的设置
    • 在此基本键中,创建一个名为 .newext 和默认值 X 的子键,其中 X 是类名(唯一标识文件的任意字符串类型)
    • 在基本键中,创建一个名为 X 和默认值 Y 的子键,其中 Y 是用户可见的描述文件类型
    • 在键X中,创建一个名为shell的子键,默认值为open
    • shell 键中,创建一个名为open 的子键,默认值为&Open
    • open 键中,创建一个名为command 的子键,默认值为"C:\path\to\open.exe" "%1"
    • shell键中,创建一个名为edit的子键,默认值为&Edit
    • edit键中,创建一个名为command的子键,默认值为"C:\path\to\edit.exe" "%1"

    【讨论】:

    • 在 Linux 上,系统完全不同,并且取决于桌面环境(Gnome、KDE……)。最好为您计划支持的每个桌面环境(最好在 superuser.com 上,因为它与编程无关)开始一个新问题。
    • 试试看,我不确定,也无法访问 Vista。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2022-12-19
    • 2013-10-10
    • 2021-12-07
    • 1970-01-01
    • 2014-10-06
    • 2013-12-16
    相关资源
    最近更新 更多