1

当您右键单击桌面时,您会看到包含“新建”子菜单的外壳上下文菜单。

示例 1:

外壳新对象列表

示例 2:

在此处输入图像描述

我想知道是否可以将此功能添加到我的 C# WPF 应用程序中?我会将这些项目放在我的应用程序的上下文菜单中,但我不知道如何获取所有这些项目以及如何执行所选项目(例如,创建新的默认文件)。

我认为这需要一些 COM 互操作,但我在网上找不到任何示例代码(甚至不是非托管示例)。我尝试显示整个菜单上下文(通过使用 gong .net shell lib),但是其中缺少这个“新”子菜单,所以我认为它可能不是 shell 上下文菜单的一部分,而是由 Windows 资源管理器动态添加的。理想情况下,即使我需要显示整个上下文菜单,我也希望从 Windows 资源管理器中重用此功能。

4

1 回答 1

3

这些被称为 ShellNew 类。它们只是 Windows 查找的注册表项。

这是一个开源项目,它有一些使用它们的辅助函数:

http://sourceforge.net/projects/shellnewhandler/

我猜您想从注册表中检索这些列表并将它们填充到您的应用程序中?

作为您需要什么信息的示例,打开 regedit 并转到 HKEY_CLASSES_ROOT 然后查找“.txt”关键字。它有一个“ShellNew”键,我认为它还从 notepad.exe 检索一个新文件名作为字符串资源(这是可选的,但给它一个“New Text Document.txt”名称)。您还会注意到 .txt 注册表项的默认键是“txtfile”。这指向另一个描述文件类型并给出其图标路径的键。

于 2013-03-28T01:36:01.570 回答