0

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

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

键值为

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

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

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

4

2 回答 2

2

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

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

于 2013-02-21T12:59:14.227 回答
1

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

于 2013-02-21T21:00:26.960 回答