Цитата wolkow70:
то есть у них вместо EndIf используется NotSilent: Но при этом у них макрос несколько иной.. »
|
разница в том, что в скрипте AIMP используются
безусловные метки, я же использую
логические конструкции, в чем разница в работе - да ни в чем!Но! когда сложный и объемный скрипт в метках легко потеряться и как вывод - ошибки в скриптах. С логическими конструкциями куда лучше читабельность скрипта, и проще правки в скрипте делать. Я писал и огромные скрипты на 7000 и более строк и если использовать безусловные метки - это полный бардак, с логикой проще - я вижу начало конструкции и конец конструкции...т.е логика И, И-ИЛИ, исключающие И и т.д.
Цитата wolkow70:
Выполняются все комманды в секции "!${PRODUCT_NAME}" после ${EndIf} и до конца секции, в том числе: »
|
Это секция всегда выполняется, здесь пишутся только самые необходимые компоненты для нормальной работы программы.
А свою ошибку исправил:
Цитата wolkow70:
И еще проблема, во время создания файла ответов, идет распаковка файлов в директорию. Можно ли сделать только эмуляцию? »
|
моя оказалась однако, извиняюсь...
Код:
Section "-Install"
;чтение из файла ответов путь установки и перезапись значения $INSTDIR
;Условие чтения и перезаписи:
; ТОЛЬКО НЕ В РЕЖИМЕ ГЕНЕРАТОРА И ТОЛЬКО В ТИХОМ РЕЖИМЕ И ПРИ НАЛИЧИИ ФАЙЛА ОТВЕТОВ
${If} $GMODE = 0
${AndIf} ${Silent}
${AndIf} ${FileExists} "$INIFILE"
ClearErrors
ReadINIStr "$R0" "$INIFILE" "DIRECTORY" "ISTALLDIR"
${WordReplace} $R0 "%programfiles%" "$PROGRAMFILES" "+" $R1
${WordReplace} $R1 "%windir%" "$WINDIR" "+" $R0
${WordReplace} $R0 "%appdata%" "$APPDATA" "+" $R1
${WordReplace} $R1 "%systemdrive%" "$SysDrive" "+" $R0
StrCpy $INSTDIR $R0
${EndIf}
${If} $GMODE = 0 ;выполнение всегда, только не в режиме генератора
;--------
/*
тут ваш код!, эта секция всегда должна выполняться
команды пишем до конца конструкции ${EndIf}
*/
;--------
${EndIf}
SectionEnd