如何为Java应用程序添加一个子菜单项到Windows资源管理器上下文菜单(例如7-Zip所做的)?
如何为Java应用程序添加一个子菜单项到Windows资源管理器上下文菜单(例如7-Zip所做的)?
我知道两种方法来实现它。一种花哨的方法是编写Windows shell扩展,这似乎是powerarchiver、winzip等软件所使用的方法(这涉及运行代码以确定右键菜单项将基于选择的文件)。
对于简单的功能,一种简单的方法是在注册表中添加一个条目:
HKEY_CLASSES_ROOT\<file type>\shell\<display text>\command
其中<file type>
是此上下文菜单应适用的文件格式,例如:*、.mdb、.doc。
<display text>
是你想在上下文菜单中显示的内容。
然后将默认字符串作为要从上下文菜单启动的应用程序的路径添加,并且您可以使用%1来引用当前选定的文件,例如对于MS Access,我使用:
HKEY_CLASSES_ROOT\*\shell\MS Access 2000\command
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "%1"
这样做会为我选择的任何文件(因此使用“*”)添加上下文菜单项,允许我在MS Access 2000中启动它。
当然,在修改注册表之前,一定要备份您的注册表。
您的程序可以在安装期间或第一次运行时执行此操作。