如何在Windows中创建上下文菜单子菜单?

问题描述:

我一直在编写实用程序,并通过*的Shell键上的Regedit将它们映射到上下文菜单,但我无法弄清楚如何使子菜单像一些更受欢迎的实用程序一样。如何在Windows中创建上下文菜单子菜单?

例如,如果我有三个脚本将文件移动和重命名为三个不同的文件夹,现在我有三个不同的上下文菜单条目。我希望有一个名为“移动和重命名...”的扩展到三个。

您尚未指定您正在使用的语言。无论如何,你需要做的是编写一个Shell Extension。有一个指南,here

正如David所指出的那样,在C#This blog post中解释它是不可能的。

+0

即使在.net 4中也不支持编写托管外壳扩展。 –

+0

@DavidHeffernan,感谢您的澄清。 –

+0

使用.net 4删除了特定的阻塞(并排运行时),但仍然存在代码注入问题。由于这个原因,MS不支持托管外壳扩展。 –

您必须编写自定义Context Menu Handler

您可以通过注册表中创建一个子菜单上下文菜单,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的其他版本可能不同的方式工作。