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

3
问题很简单:我有很多桌面快捷方式,指向很多文件,但我也有很多指向这些快捷方式所指向的目录的快捷方式。我想通过添加另一个右键菜单选项来消除这种冗余,使所有快捷方式(.lnk文件)都可以打开包含所指向文件的目录的explorer.exe。

虽然我已经发现了如何检索快捷方式的目标并且它有效,但我还是找到了一个建议如何在右键上下文菜单中添加菜单项的建议,但它不起作用(我在HKCR*\shellext\ContextMenuHandlers下放置了一个名为“Test”的键,并将基本值设置为“cmd.exe”)

但是它显然不起作用

有什么建议吗?

更新1: 如何向该菜单项添加图标?图标文件应该是什么大小? 16x16还是32x32?

提前致谢


不,这样行不通。你必须将一个特别设计的COM服务器的CLSID guid放在那里,一个shell扩展处理程序。用C#编写非常困难。 - Hans Passant
1个回答

3

进入 HKCR\lnkfile

创建一个名为 "shell" 的新键,然后再创建另一个名为您想要上下文菜单处理程序显示文本的键,我称之为 "COMMAND"。

接下来,再创建一个名为 "command" 的键,并将 (Default) 值设为 "cmd.exe",这将是您自定义命令的路径。如果您要指向具有空格的 exe,则记得用引号括起来。

因此,对于此示例,最终键如下:

HKCR\lnkfile\shell\COMMAND\command\

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

此外,您可以使用 "%1" 来指定由右键菜单访问的.lnk文件的完整路径,再次记得要用引号括起来,因为您永远不知道它的完整路径是否有空格。


很遗憾,我不知道答案。最好单独提出这个问题。 - Steve Danner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接