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

Показать сообщение отдельно

Аватара для Oleg48

Старожил


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

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


Дорогие товарищи помогите подчистить (подкорректировать, упростить) код:
Код: Выделить весь код
!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 неуказывается тогда пользователю предлогается ввести пароль в окошке, естественно при правильном пароле программа устанавливается, а при неправильном нет.
Писал этот код почти по наитию, методом проб и ошибок, поэтому строго несудите. Самому неочень нравится переходы на метки, считаю что это неочень правильно но по другому еще пока неумею. Буду рад любой помощи.

Отправлено: 19:39, 27-09-2011 | #1662