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

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

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

但它显然不起作用

有什么建议吗?

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

提前致谢

进入HKCR\lnkfile

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

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

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

 HKCR\lnkfile\shell\COMMAND\command\ 

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

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