如何以编程方式将命令添加到某个扩展名的右键菜单?

时间:2010-07-13 08:07:43

标签: c++ qt

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

现在我想

  1. 通过双击.newext文件打开exe打开。
  2. 右键单击.newext文件获取一个菜单,其中以粗体显示“Open”,并在其下面写入“Edit”。通过单击“编辑”,edit.exe将打开.newext文件。
  3. 以编程方式执行此操作,以便它可以在尽可能多的平台上运行 (至少在Xp,Vista和Win7上)。
  4. 我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

您必须在注册表中编辑类树(使用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"