【问题标题】:Windows 8 specific file type context menu associationWindows 8 特定文件类型上下文菜单关联
【发布时间】:2013-02-21 10:51:58
【问题描述】:

需要将项目添加到特定文件类型的上下文菜单。在 Windows 7 和以前的版本中,通过添加来完成

HKEY_CLASSES_ROOT\<extension>\shell\<commandname>\command

值为

的键
@="<path_to_app> \"%1\""

到注册表。 在 Windows 8 中不起作用。即使在删除了相应类型的 PersistentHandler 键之后:

有趣的是,如果 shell/command 键写在 HKEY_CLASSES_ROOT\*\ 部分,上下文菜单项会按预期出现在所有文件的菜单中,但如果我需要将我的应用程序添加到仅 2-3文件类型而不破坏任何现有的关联。 我在 C# 中使用Microsoft.Win32.Registry.ClassesRoot 来实现此逻辑,但问题绝对不在代码中,因为 a) 它适用于 Windows 7 b) 在 Windows 8 中使用管理员权限进行手动编辑不会添加所需的关联。

【问题讨论】:

    标签: c# windows-8 registry contextmenu file-type


    【解决方案1】:

    您一定已经注意到原来那里没有“shell”键,尽管 .avi 文件肯定有一个打开上下文菜单项。有一个额外的间接级别,请注意 .avi 键的默认值。这是与 .avi 文件扩展名关联的 ProgId。

    按照 WMP11.AssocFile.AVI 键查找 shell 命令,在此处添加您的命令。

    【讨论】:

    • 在空白虚拟机上测试,似乎可以正常工作。以为问题解决了,但后来在工作机上测试失败,因为有另一个应用程序与需要的类型相关联,WMP11.AssocFile.AVI 也没有效果。将尝试 HKEY_CLASSES_ROOT\SystemFileAssociations\video 看看效果如何。
    【解决方案2】:

    “HKEY_CLASSES_ROOT\SystemFileAssociations\video”是具有非 WMP 默认媒体播放器的系统中 .avi 文件的“真实”子树。我感兴趣的 .mkv 文件类型还创建了另一个子树 - “mkv_auto_file”。不知道为什么这样做以及记录在哪里,但我的问题已经解决了。感谢汉斯的指导。

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多