Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Vincent7
18-07-2012, 14:14
MKN, окей, возможен ли другой вариант для решения моей задачи?
Vincent7,
возможен ли другой вариант для решения моей задачи? »
Сделать собственную страничку выбора компонентов с собственой кнопкой.
Кода будет побольше, но и гибкости с манипуляциями кнопкой, тоже поболее - результат тот же.
MKN, окей, возможен ли другой вариант для решения моей задачи? »
Интересно...Вам уже мало того, что вам предлагают готовое решение вашего вопроса?
Или вы думаете, зададите вопрос, а вам в ответ 10 разных готовых кодов предоставят, чтобы вы ещё и посидели и выбрали, какой же самый красивый?
Вам предлагают решение, вам оно не нравится
Вывод: делайте сами и делайте "что-то новенькое"
КУДА ещё проще того кода, который вам предоставили???
Перечитать статусы всех секций и блокировать/не блокировать кнопку...
Либо вам просто лень почитать справку и вникнуть в значение команд, больше к этому варианту склоняюсь как обычно
Или у меня уже мания на лень людей, всех подозреваю :lol:
Vincent7
18-07-2012, 17:12
K.A.V., тогда подскажите просто как заблокировать кнопку 'далее' на странице компонентов. Я так понимаю если сделать вот так -
СектионГетФлагс{секция} $Р1
{$Иф} $Р1==0
код блокировки кнопки
{$ендиф}
Сработает? :lol:
СектионГетФлагс{секция} $Р1
{$Иф} $Р1==0
код блокировки кнопки
{$ендиф}
Сработает? »
Именно такой код - нет, не сработает, приведите его в код NSIS скрипта, и, если у вас 1 секция, то сработает
Vincent7
18-07-2012, 21:07
K.A.V., отлично! Подскажете код блокировки?:)
Vincent7,
Уже был пример : http://forum.oszone.net/showpost.php...postcount=2705 »
"Поищите" код блокировки в посте, ссылку на которую вам уже дали, там даже комментарии есть...
Из принципа не дам готовый код
Vincent7
19-07-2012, 02:08
K.A.V., Спасибо. Такой вопрос, можно ли сделать так - проверить наличие такой то папки, если она есть то такой то компонент сделать неактивным и не выбранным?
проверить наличие такой то папки, если она есть то такой то компонент сделать неактивным и не выбранным? »
Читаем справочку, очень полезный документик
Для данного кода вам нужно использовать команды
DirState
SectionSetFlags
wolkow70
19-07-2012, 14:35
Товарищи, насколько корректным является использовать переходы по безусловным меткам в логической конструкции? Например так:
${If} ${FileExists} "$EXEDIR\1.reg"
GoTo label 1
${ElseIf} ${FileExists} "$EXEDIR\2.reg"
GoTo label 2
${EndIf}
label 1:
label 2:
Или переход по метке допустим только внутри логики ?
wolkow70, а чем вам не угодили простые конструкции проверки файлов, типа таких...
IfFileExists "$EXEDIR\TEST1.log" label1 0
IfFileExists "$EXEDIR\TEST2.log" label2 0
MessageBox MB_OK|MB_ICONSTOP "Ни одного файла нету"
label1:
MessageBox MB_OK|MB_ICONINFORMATION "Первый файл найден, переходим сюда"
label2:
MessageBox MB_OK|MB_ICONINFORMATION "Первого файла нет, но есть второй"
wolkow70
19-07-2012, 14:58
а чем вам не угодили простые конструкции проверки файлов, типа таких... »
Пока так и сделал. Бывает, что нужно много файлов проверить, тогда лучше в логике через:
${If} ${FileExists}
${OrIf} ${FileExists}
Vincent7
19-07-2012, 17:23
K.A.V., я сделал так http://upwap.ru/2620264
Код компилируется но инсталлятор не запускается, просто висит в процессах и все.
Код компилируется но инсталлятор не запускается, просто висит в процессах и все. »
А посидеть и проанализоровать кажду строчку своего кода, никак?
Смотрите внимательно... у вас лишний "прыжок" на метку dlc_3, который и вызывает данное поведение инсталлятора
${DirState} "$INSTDIR\BioGame\DLC\DLC_UNC_Pack01" $2
${If} $2 == "1"
IntOp $2 0 | 16
SectionSetFlags ${SEC02} $2
Goto dlc_3
${OrIf} $2 == "-1"
Goto dlc_3
${EndIf}
dlc_3:
Goto dlc_3
${DirState} "$INSTDIR\BioGame\DLC\DLC_EXP_Part02" $3
${If} $3 == "1"
IntOp $3 0 | 16
SectionSetFlags ${SEC03} $3
Goto dlc_4
${OrIf} $3 == "-1"
Goto dlc_4
${EndIf}
dlc_4:
Удалите строку из кода, выделенную жирным шрифтом
Vincent7
19-07-2012, 18:34
K.A.V., премного благодарен :)
Vincent7
19-07-2012, 22:46
K.A.V., а как можно подсчитать количество файлов в папке и ее подпапках? И можно ли сделать так чтобы развёрнутую группу нельзя было свернуть?
K.A.V., а как можно подсчитать количество файлов в папке и ее подпапках? »
Читайте в справке про функцию Locate, там всё описано
Что-то типа такого получится у вас (поставьте в поиск только файлы)
; В начале кода
!include "FileFunc.nsh"
Function TEST
var /global MyVar
${Locate} "$PROGRAMFILES" "/L=F" "Example3"
MessageBox MB_OK|MB_ICONINFORMATION "Найдено $MyVar файлов"
FunctionEnd
Function Example3
IntOp $MyVar $MyVar + 1
Push $0
FunctionEnd
И можно ли сделать так чтобы развёрнутую группу нельзя было свернуть? »
Пропишите в функцию .onSelChange команду на присвоение флага группе, присваивайте флаг
!define SF_EXPAND 32
Теоретически, должно сработать
если кто знает помогите плиз. хелп (ру) весь прочитал но ответа не нашел.
при установке программы запускается тулбар.ехе и появляется его окно с предложением установить, НО его окно появляется на втором плане. как его вывести на первый план? что бы его окно появилось поверх моего инсталлера?
File "toolbar.exe"
ExecWait "$TEMP\toolbar.exe -rotate=A -title=ToolBar -sid=1"
п.с. а можно ли его окно (1 страница: установить/закрыть) вставить как страницу своего инсталлера (размеры одинаковые) ? (типа как ифрэйм в вебе:) )
спасибо
wolkow70
20-07-2012, 12:48
Не могу найти способ решить такую задачу:
InstType "Сокращенная"
InstType "Полная"
InstType "Минимальная"
Section "Установить для всех Пользователей" MultiUser
command1
SectionEnd
Section /o "Установить для текущего Пользователя" AllUser
command2
SectionEnd
Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${MultiUser}
!insertmacro RadioButton ${AllUser}
!insertmacro EndRadioButtons
FunctionEnd
Function .OnInit
StrCpy $1 ${MultiUser}
FunctionEnd
Задача сделать так, что бы инсталлятор запускался с InstType "Сокращенная" по умолчанию. Без радио-буттона - так оно и есть. Из-за радио-бутона запускается с типом установки "По выбору".
Кто-нибудь может подсказать возможно ли это обойти ?
Krinkels
20-07-2012, 13:08
У кого есть возможность протестировать спец. билд NSIS на 64-bit системе?
https://bitbucket.org/dgolub/nsis64/downloads
Якобы, есть возможность обойти ограничение в 2 Гб, но только на 64-bit системе, у самого данной возможности нет, если кто сможет - протестируйте и сообщите сюда »
Создается exe файл больше 2 гигов, но при установке выдает что возможно дистрибутив поврежден. И подготовка к запуску занимает уж очень большое время. Пробовал паковать 7 гигов, так рядом с инсталятором создается .dat файл размером как раз на 7 гигов. Запускать пробовал, но окончания проверки так и не дождался
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC