如何使用C#将具有子项的项添加到系统上下文菜单

时间:2013-08-30 08:52:56

标签: c# contextmenu right-click

我想将我的软件的一些新项目(包含子项目)添加到上下文菜单中,如下所示

所以我查看了注册表,发现了这个:

我想软件“Google Drive”已经创建了一些所有者类(或服务)来向其上下文菜单添加命令,字符串{BB02B294-8425-42E5-983F-41A1FA970CD6}就是这个服务的呈现(或类),如Windows SendTo服务(右键单击 - >发送到)

但是怎么做?

1 个答案:

答案 0 :(得分:2)

首先,最重要的是,无法在没有上下文菜单处理程序的情况下创建嵌套上下文菜单。上下文菜单处理程序只是用户计算机上注册的COM Server .COM服务器以动态链接库的形式存在。为了更好地解释它,让我从你的第一张图片中提取一个例子;名为谷歌驱动器的菜单条目是一个COM服务器和条目复制到文件夹移动到文件夹是注册表中的简单快捷方式条目。使用特定命令创建快捷方式条目相对容易。
要在桌面上下文菜单中创建快捷方式,例如启动记事本,请在注册表编辑器中找到以下注册表项, [HKEY_CLASSES_ROOT \ Directory \ Background \ shell] ,创建一个将新密钥命名为启动记事本,在其默认值中添加此项,执行记事本。现在在启动记事本下创建一个新密钥,将其命名为命令并将其添加到其默认值 notepad.exe 。就是这样,现在右键单击桌面,您会注意到一个名为执行记事本<的新条目/ strong>,单击它将打开Notepad。这是创建简单快捷方式条目的方法,请注意这些快捷方式条目不能嵌套意味着您无法在执行记事本条目下添加任何条目。

现在,如果您想了解如何开始制作shell扩展程序,请查看here 希望这会对你有所帮助。