如何将上下文菜单添加到 Java 应用程序的 Windows 资源管理器?

Posted

技术标签:

【中文标题】如何将上下文菜单添加到 Java 应用程序的 Windows 资源管理器?【英文标题】:How can I add a context menu to the Windows Explorer for a Java application? 【发布时间】:2010-09-27 01:46:29 【问题描述】:

如何将子菜单项添加到 Java 应用程序的 Windows 资源管理器上下文菜单(例如 7-Zip)?

【问题讨论】:

【参考方案1】:

我知道有两种方法可以做到这一点。奇特的方法是编写一个 windows shell 扩展,我相信 powerarchiver、winzip 等就是这样做的(这涉及运行代码来确定上下文菜单项将依赖于所选文件)。

对于简单的功能,简单的方法是您可以在注册表中添加一个条目:

HKEY_CLASSES_ROOT\<file type>\shell\<display text>\command

其中&lt;file type&gt; 是此上下文菜单应应用于的文件,即 *、.mdb、.doc

&lt;display text&gt; 您想在上下文菜单中显示的内容。

然后将默认字符串添加为要从上下文菜单启动的应用程序的路径,您可以使用 %1 来引用当前选定的文件,即我使用的 MS Access:

HKEY_CLASSES_ROOT\*\shell\MS Access 2000\command
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "%1"

然后为我选择的任何文件添加一个上下文菜单项(因此是 *),这允许我在 MS Access 2000 中启动它。

当然,在破解注册表之前,请务必备份您的注册表。

您的程序可以在安装期间或首次运行时执行此操作。

【讨论】:

这看起来很简单,谢谢。此方法是否还支持将多个条目分组到一个子菜单中? 如何编写一个 Windows shell 扩展来做到这一点? 如何为文件夹和所有文件 (.) 添加这样的注册表项? @Tom 你可能想看看这个codeproject.com/Articles/441/… @Jayden 在我的 JAVA 程序中,如何确定该应用程序正在打开哪个文件?【参考方案2】:

您也可以将 java 程序打包到 NSIS 等安装程序中,您可以使用 NSIS 脚本生成资源管理器上下文菜单

【讨论】:

以上是关于如何将上下文菜单添加到 Java 应用程序的 Windows 资源管理器?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的程序添加到右键单击上下文菜单并传递它的路径

如何将项目添加到 UWP 应用程序的资源管理器上下文菜单

如何将上下文菜单添加到 xamarin UWP 应用程序中的列表项?

如何将上下文菜单添加到 ListBoxItem?

如何将上下文菜单项添加到FlowDocumentScrollViewer内的textBox

如何将上下文菜单添加到 wpf 数据网格?