Salmo,
Самое простое, кликнуть правой кнопкой мыши по любому файлу и в появившемся контекстном меню кликнуть по нужному пункту, который сам и создашь.
код , как создать такой пункт :
Код:

OutFile "FilePatchMyFunction.exe"
RequestExecutionLevel admin
Section
SetShellVarContext all
WriteRegStr HKEY_CLASSES_ROOT "*\Shell\FilePatchMyFunction" "" ""
WriteRegStr HKEY_CLASSES_ROOT "*\Shell\FilePatchMyFunction\command" "" "$TEMP\MyFunction.exe /A $\"%1$\""
;WriteRegStr HKCR "*\Shell\FilePatchMyFunction" "icon" "$icoPatch\my.ico"
SectionEnd
В этом примере пункт назван "FilePatchMyFunction"
Обрабатывается клик командой "$TEMP\MyFunction.exe /A $\"%1$\"
MyFunction.exe(помещаемую, как пример, в $TEMP), где определяется путь из переменной, получаем так :
Код:

outfile "MyFunction.exe"
!include "FileFunc.nsh"
RequestExecutionLevel admin
Function .onInit
${GetParameters} $R0
ClearErrors
${GetOptions} $R0 "/A" $0
MessageBox MB_OK "$0"
FunctionEnd
Section
SetAutoClose true
SectionEnd
(этот код можешь добавить в код своей функции или как угодно...)
Наверняка можно "ловить" клик по файлу и иначе, но это уже программирование иного уровня...