2013-02-21 85 views
0

需要将项目添加到特定文件类型的上下文菜单。在Windows 7和之前的版本是将照片添加与Windows 8特定文件类型上下文菜单关联

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

值注册表

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

键完成。 在Windows 8中不起作用。即使删除相应的类型的PersistentHandler键后: registry screenshot

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

回答

1

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

2

您一定注意到最初没有“shell”键,尽管.avi文件肯定有Open上下文菜单项。还有一个额外的间接级别,请注意.avi键的默认值。这是与.avi文件扩展名关联的ProgId。

按照WMP11.AssocFile.AVI键找到shell命令,在那里添加你的命令。

+1

测试空白虚拟机,似乎工作。思想问题解决了,但随后在工作机器上测试并失败,因为有另一个应用程序与需要的类型相关联,并且WMP11.AssocFile.AVI也没有效果。将尝试HKEY_CLASSES_ROOT \ SystemFileAssociations \视频,看看它如何发挥。 – Jaded 2013-02-21 19:56:27