Дорогие товарищи помогите подчистить (подкорректировать, упростить) код:
Код:
![Выделить весь код](images/misc/selectcode.png)
!include "FileFunc.nsh"
!include "nsDialogs.nsh"
!include "winmessages.nsh"
!include "logiclib.nsh"
var dialog
var pass
var rezul
Function .onInit
${GetOptions} $CMDLINE "/PAS=" $1
IfErrors +3 0
StrCpy $rezul $1
GoTo .Done
FunctionEnd
Page custom fnCustomInit fnCustomDestroy
Function fnCustomInit
nsDialogs::Create 1018
Pop $dialog
${NSD_CreateText} 40% 20% 90u 12u $rezul
Pop $pass
${if} $rezul == ""
nsDialogs::Show
${endif}
FunctionEnd
Function fnCustomDestroy
${NSD_GetText} $pass $rezul
GoTo .Done
FunctionEnd
Section "MainSection" SEC01
.Done:
${ifnot} $rezul == ПАРОЛЬ
MessageBox MB_ICONSTOP "Неверный пароль !!!"
Abort ; конец иницилизации
${endif}
...
SectionEnd
Писать скрипты на NSIS начал недавно, чаще всего использовал мастер, почти незадумывался о коде, вот решил его усовершенствовать.
Вашему вниманию представляю часть кода, принцип его работы такой: Запускаем программу. Если при запуске программы указываем ключ /PAS="пароль" , тогда если пароль правильный программа устанавливается без окна запроса пароля, если пароль неправильный то ничего непроисходит. Если при установке ключ /PAS неуказывается тогда пользователю предлогается ввести пароль в окошке, естественно при правильном пароле программа устанавливается, а при неправильном нет.
Писал этот код почти по наитию, методом проб и ошибок, поэтому строго несудите. Самому неочень нравится переходы на метки, считаю что это неочень правильно но по другому еще пока неумею. Буду рад любой помощи.