Я знаю два способа сделать это. Причудливый способ - написать расширение оболочки 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.
Конечно, всегда делайте резервную копию реестра, прежде чем взламывать его.
Ваша программа может сделать это во время установки или при первом запуске.