How can I add a context menu to the Windows Explorer for a Java application?

Thilo picture Thilo · Dec 16, 2008 · Viewed 9.4k times · Source

How would one go about adding a submenu item to the windows explorer context menu (like for example 7-Zip does) for a Java application?

Answer

Jayden picture Jayden · Dec 16, 2008

I am aware of two ways to do it. The fancy way is to write a windows shell extension, which is how powerarchiver, winzip etc do it I believe (this involves running code to determine what the context menu items will be dependent on the file chosen).

The simple way, for simple functionality, is you can add an entry in the registry :

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

Where <file type> is the files that this context menu should apply to i.e. *, .mdb, .doc

and

<display text> what you want to show in the context menu.

Then add the default string as a path to the application you want to launch from the context menu, and you can use %1 to refer to the currently selected file i.e. for MS Access I use :

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

This then adds a context menu item for any file I select (hence the *), which allows me to launch it in MS Access 2000.

Of course, always back up your registry before hacking it.

Your program could do this during install, or on first run.