Как добавить контекстное меню в проводник Windows для приложения Java?

Как можно было бы добавить элемент подменю в контекстное меню проводника Windows (как, например, 7-Zip) для приложения Java?


person Thilo    schedule 15.12.2008    source источник


Ответы (2)


Я знаю два способа сделать это. Замечательный способ - написать расширение оболочки Windows, как это делают 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.

Конечно, всегда делайте резервную копию реестра, прежде чем взламывать его.

Ваша программа может сделать это во время установки или при первом запуске.

person Jayden    schedule 16.12.2008
comment
Это кажется достаточно простым, спасибо. Поддерживает ли этот метод также группировку нескольких записей в подменю? - person Thilo; 16.12.2008
comment
Как для этого написать расширение оболочки Windows? - person Tom; 30.12.2010
comment
Как добавить такую ​​запись в реестр для папок и для всех файлов (.)? - person Tom; 30.12.2010
comment
@Tom, возможно, вам понравится это проверить codeproject.com/Articles/441/ - person fernandohur; 11.04.2012
comment
@Jayden В моей программе JAVA, как определить, какой файл открывается с помощью этого приложения? - person Jisan Mahmud; 11.09.2012
comment
Можно ли сделать исключение типа файла (я имею в виду - использовать его для всех файлов, кроме * .zip например)? - person Quark; 18.08.2016

Вы также можете упаковать Java-программу в установщик, такой как NSIS, и вы можете использовать скрипт NSIS для создания контекстного меню проводника.

person Harkish    schedule 10.07.2011