4

如果这已经得到回答,我很抱歉。我看了又看,找不到任何我想要的东西,这让我感到非常惊讶。请随时给我一个“这已经被问到”的链接...... :(

我正处于用 C# 创建程序的早期阶段。主窗口将包含与我的应用程序相关的文件列表。我目前将它们放在列表视图中,但我可以在必要时切换小部件类型。我想要的是让用户可以右键单击一个或多个文件名,这将显示与资源管理器中相同的上下文菜单。例如“打开”、“编辑”、“打印”等。

显然,我可以手动将内容放入上下文菜单中,但我希望它具有与资源管理器中相同的选择。会有Word文档和文本文件以及其他各种零碎的东西。我不知道标准 Windows 上下文菜单中的操作列表是如何填充的,特别是考虑到列表会根据所选文件类型以及是否选择多个文件而变化。

如有必要,我可以提供代码,尽管我还没有任何有趣的东西。

所以我的问题是 - 如何在资源管理器中右键单击文件或文件组时获得操作列表?有我可以调用的 Windows API 吗?或者我是否汇总了我在注册表中读取的选项?如果是这样,我读什么?或者是什么?

作为奖励,我希望能够仅在我自己的应用程序中将一些我自己的命令添加到菜单中。大多数情况下,我能找到的只是如何为上下文菜单编写扩展名,以便我可以添加一个在单击特定文件类型时始终出现的操作。那不是我想要的。不过这是一个奖励,如果这不起作用或需要英雄编码,我总是可以添加按钮或下拉菜单或其他东西。

4

1 回答 1

4

我发现这篇文章描述了 c++ 的过程,但我认为你将能够转换它。使用 shell 上下文菜单

编辑:这是一个项目的另一个链接,其中包含准备使用的代码(C#):

资源管理器外壳上下文菜单

于 2013-06-14T17:19:29.530 回答