Delphi在Windows资源管理器中右键单击添加菜单项

Posted

技术标签:

【中文标题】Delphi在Windows资源管理器中右键单击添加菜单项【英文标题】:Delphi add menu item in Windows Explorer right click 【发布时间】:2012-01-01 05:28:54 【问题描述】:

如何在 Windows 资源管理器中为所有类型的文件扩展名添加右键上下文菜单?

根据我在互联网上阅读的内容,我阅读了一种针对某些文件扩展名执行此操作的方法。

我的问题,我们如何为所有类型的文件扩展名做到这一点?

我看到一些软件是这样做的,例如:WinRar、Notepad++等

PS:我的目标是 Delphi 7.0 兼容代码。

谢谢。

【问题讨论】:

【参考方案1】:

最简单的方法是添加这样的注册表项:

HKEY_CLASSES_ROOT
  *
    shell
      YourAppName
        Command      C:\Full\Path\To\Your\App.exe "%1"

当用户单击此菜单项时,您的应用程序将被执行并将文件名作为第一个命令行参数传递。

虽然您可以为此编写一个 shell 扩展,但这更加困难。此外,如果您使用的是 Delphi 7,那么您将无法为 64 位 Windows 编写 shell 扩展。

【讨论】:

值得注意的是:我一直在寻找一种同时适用于多个文件的解决方案。此解决方案按预期工作 - 当您选择几个文件并右键单击时,您会得到“YourAppName” - 命令将为每个文件运行。【参考方案2】:

在 "HKEY_CLASSES_ROOT\*\shell" 添加键 "open with my app" 然后添加 "command" 并将默认 (REG_SZ) 设置为您要运行的 (%1 参数 - 文件名)

【讨论】:

以上是关于Delphi在Windows资源管理器中右键单击添加菜单项的主要内容,如果未能解决你的问题,请参考以下文章

当我在 Visual Studio 2017 的解决方案资源管理器中右键单击 Web 项目时,无法将添加->现有项目视为 Azure Web 作业选项

文件属性选项卡访问信息 vb.net

我将我的 C# 程序添加到 Windows 注册表中如何获取我在代码中右键单击的文件?

从 Windows 资源管理器中打开 VS Code 中的文件夹

如何获取用电子app打开文件的参数

从 Windows 命令行获取文件夹大小