如何在Windows中创建上下文菜单子菜单?
问题描述:
我一直在编写实用程序,并通过*的Shell键上的Regedit将它们映射到上下文菜单,但我无法弄清楚如何使子菜单像一些更受欢迎的实用程序一样。如何在Windows中创建上下文菜单子菜单?
例如,如果我有三个脚本将文件移动和重命名为三个不同的文件夹,现在我有三个不同的上下文菜单条目。我希望有一个名为“移动和重命名...”的扩展到三个。
答
您尚未指定您正在使用的语言。无论如何,你需要做的是编写一个Shell Extension。有一个指南,here。
正如David所指出的那样,在C#This blog post中解释它是不可能的。
答
您可以通过注册表中创建一个子菜单上下文菜单,WIN 7所看到here
备份您的注册表第一推荐!
本示例将带有单个命令的子菜单放入任何文件(不是文件夹或桌面)上的右键上下文中。
菜单:
[HKEY_CLASSES_ROOT\*\shell\Custom Menu]
"MUIVerb"="Custom Tools"
"SubCommands"="Custom.copytoclip"
的命令:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Custom.copytoclip]
@="copytoclip description here"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Custom.copytoclip\command]
@="cmd /c clip < %1"
请小心编辑注册表,Windows的其他版本可能不同的方式工作。
即使在.net 4中也不支持编写托管外壳扩展。 –
@DavidHeffernan,感谢您的澄清。 –
使用.net 4删除了特定的阻塞(并排运行时),但仍然存在代码注入问题。由于这个原因,MS不支持托管外壳扩展。 –