使用C#为所有桌面快捷方式创建自定义右键单击上下文菜单项(Windows资源管理器)

时间:2010-09-08 01:34:18

标签: c# registry

问题很简单:我有很多桌面快捷方式指向大量文件,但我也有很多快捷方式指向这些快捷方式所指向的目录。我想通过简单地为所有快捷方式(.lnk文件)添加另一个右键单击菜单选项来删除此冗余,该选项允许您将explorer.exe打开到包含指向文件的目录。

虽然我发现了如何检索快捷方式的目标并且它正在工作,但我发现了一个关于如何将菜单项添加到右键单击上下文菜单的建议,但它不起作用(我在HKCR * \ shellext \ ContextMenuHandlers下调用了一个键测试并将基值设置为“cmd.exe”

但它不起作用,显而易见

任何建议?

更新1: 如何在该菜单项中添加图标?图标文件应具有多大的尺寸? 16x16或32x32?

提前致谢

1 个答案:

答案 0 :(得分:3)

进入HKCR\lnkfile

创建一个名为“shell”的新密钥,在下面创建另一个名为“你想要显示文本”的上下文菜单处理程序的密钥,我称之为“命令”。

接下来,在下面创建另一个名为“command”的键,并使(默认)值为“cmd.exe”,这将是自定义命令的路径。如果你要指向一个有空格的exe,请记得用引号括起来。

因此,对于此示例,最终密钥最终为:

HKCR\lnkfile\shell\COMMAND\command\

添加上面提到的(默认)值,您的测试将正常工作。

此外,您可以使用“%1”指定上下文菜单访问的.lnk文件的完整路径,再次记住将其包装在引号中,因为您永远不知道它是否是一个包含空格的文件在它的完整路径。