如何将一个子菜单项添加到Windows资源pipe理器上下文菜单(如7-Zip所做的)为Java应用程序?
我知道有两种方法可以做到这一点。 奇特的方法是编写一个Windows外壳扩展,这是powerted,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中启动它。
当然,在黑客入侵之前总是要备份你的注册表。
您的程序可以在安装过程中或首次运行时执行此操作。
你也可以将java程序打包到像NSIS这样的安装程序中,并且可以使用NSIS脚本来生成资源管理器上下文菜单