Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2371
Благодарности: 562

Профиль | Отправить PM | Цитировать


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
(этот код можешь добавить в код своей функции или как угодно...)

Наверняка можно "ловить" клик по файлу и иначе, но это уже программирование иного уровня...
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:53, 13-11-2018 | #2226