Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Vincent7
20-07-2012, 16:18
K.A.V., с подсчетом разобрался благодарю вас за пример, а вот второй пример не сработал , ошибка SF EXPAND already defined
НО его окно появляется на втором плане. как его вывести на первый план? »
Читайте документацию к тулбару, думаю можно запустить его установку в скрытом режиме....
Кто-нибудь может подсказать возможно ли это обойти ? »
Function .OnInit
StrCpy $1 ${MultiUser}
SetCurInstType 0
FunctionEnd
Создается exe файл больше 2 гигов, но при установке выдает что возможно дистрибутив поврежден. И подготовка к запуску занимает уж очень большое время. Пробовал паковать 7 гигов, так рядом с инсталятором создается .dat файл размером как раз на 7 гигов. Запускать пробовал, но окончания проверки так и не дождался »
Вообщем бессмысленно как-то всё)
Проще создать тогда отдельный архив с помощью 7-ZIP
ошибка SF EXPAND already defined »
Читайте справочку, это флаги, которые используются в командах типа SectionSetFlags
А группу нельзя заморозить стандартными методами, посмотрел сейчас, можно сделать максимум чтобы группа разворачивалась, когда отмечают какой-либо компонент, не более
Krinkels
20-07-2012, 17:38
Проще создать тогда отдельный архив с помощью 7-ZIP »
Или FreeArc, я как раз доделываю плагин
wolkow70
20-07-2012, 18:09
K.A.V., Function .OnInit StrCpy $1 ${MultiUser} SetCurInstType 0 FunctionEnd »
Да, инсталлятор стал запускаться с с InstType "Сокращенная" по умолчанию. Но при запуске обе секции радио-бутона почему-то не отмечены. при последующем коцании по секциям работоспособность бутона восстанавливается. Может еще есть смысл для запуска флаг секции установить в Function .OnInit ?
Или FreeArc, я как раз доделываю плагин »
Что за плагин? По сжатию данных инсталлятора с помощью 7-ZIP?
Просто в своём SFX Creator (http://forum.oszone.net/thread-151756.html) (он написан на NSIS) нацеливаюсь реализовать поддержку создания установок свыше 2 Гб данных + возможность многотомных архивов, делать думал с помощью консольной версии 7-Zip создавая отдельный архив (пока что всё только в теории)
А если бы, можно было обойтись без консольной версии 7zip чтобы не таскать его за собой и использовать плагин, не уступающий в возможностях, то было бы здорово)
Может еще есть смысл для запуска флаг секции установить в Function .OnInit ? »
Знаете, я не умею гадать и я не телепат
Вы такие интересные, предоставляете какой то мизерный кусочек вашего кода и ставите вопрос, а мы сиди и думай, что же ещё у вас там в коде было прописано, т.к. честно, я ничего не понял из вышесказанного вами и вашего "кода", который не полный, секции у вас не все и функция .onSelChange тоже, наверно, не полная
Поэтому я ничего сказать вам не могу...Гадать я не умею, предоставляйте полный код и спрашивайте, а "а может" а не знаю, может и "может", может и "не может"
wolkow70
20-07-2012, 18:48
и функция .onSelChange тоже, наверно, не полная »
Полная.
А скрипт большой слишком. Вряд ли кто-то разбираться будет в нем.
Krinkels
20-07-2012, 19:23
Что за плагин? По сжатию данных инсталлятора с помощью 7-ZIP?
Просто в своём SFX Creator (он написан на NSIS) нацеливаюсь реализовать поддержку создания установок свыше 2 Гб данных + возможность многотомных архивов, делать думал с помощью консольной версии 7-Zip создавая отдельный архив (пока что всё только в теории)
А если бы, можно было обойтись без консольной версии 7zip чтобы не таскать его за собой и использовать плагин, не уступающий в возможностях, то было бы здорово) »
Нет, это плагин для распаковки arc архивов. Реализовано в виде 2 dll. Так же есть код на чистом NSIS, написанный kotkovets'ом, но в нем минимум функционала.
А скрипт большой слишком. Вряд ли кто-то разбираться будет в нем »
Я вам говорил про наличие секций в примере вашего когда, чтобы самому не приходилось что-то дописывать...
Блин, wolkow70, ну раз секции не отмечены, в чем проблема самому при запуске назначить флаги то?
Сложно? После всех то манипуляций с секциями в этой теме, что только мы тут уже с ними не делали... :biggrin:
InstType "Сокращенная"
InstType "Полная"
InstType "Минимальная"
Section "Установить для всех Пользователей" MultiUser
SectionEnd
Section /o "Установить для текущего Пользователя" AllUser
SectionEnd
Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${MultiUser}
!insertmacro RadioButton ${AllUser}
!insertmacro EndRadioButtons
FunctionEnd
Function .OnInit
StrCpy $1 ${MultiUser}
SetCurInstType 0
SectionSetFlags ${MultiUser} 1
SectionSetFlags ${AllUser} 1
FunctionEnd
Может еще есть смысл для запуска флаг секции установить в Function .OnInit ? »
Вы не гадайте, а возьмите сначала сами протестируйте (а написать то, нужно было всего 2 строчки), вы больше времени теряете...
При не знании всё достигается путём тестов
Для справки :
Появилась очередная бета NSIS Studio 2.1 beta - 17th July 2012. http://teejee2008.wordpress.com/
(устанавливать сначала 2.0 , потом 2.1 , в 2.1 похоже пропущен ряд файлов... )
Файлы здесь : http://www.mediafire.com/?gnm3d4czslqat
Практической пользы от проги пока мало. До SFX Creator, ещё дорабатывать и дорабатывать... :)
с NSIS Dialog Designer ( http://coolsoft.altervista.org/nsisdialogdesigner ) пока затишье. Остановился автор на v.0.9.16 - 2012-04-20, работаюшей через пень-колоду... Но задумка оч. хорошая...
обновился плагин nsKeyHook plug-in 1.0.0.1 - 12th July 2012 http://nsis.sourceforge.net/NsKeyHook_plug-in
обновился NsJSON plug-in 1.0.0.1 - 1st July 2012 http://nsis.sourceforge.net/NsJSON_plug-in (JSON - JavaScript Object Notation http://www.json.org/)
обновился LockedList plug-in 2.6.1.4 - 12th July 2012 http://nsis.sourceforge.net/File:LockedList.zip
Появилась очередная бета NSIS Studio 2.1 beta »
Скачал, там старая версия 1.1 показывает после запуска программы
Какой FrameWork нужен этой программе? У меня постоянно вываливаются ошибки в программе и программа не работает как нужно
Удобная, лучше чем SFX Creator, по функционалу так посмотреть и не удалось
там старая версия 1.1 показывает после запуска программы »
У меня в заголовке - версия 2.1 BETA. Как и заявлено.
FrameWork используется 2 и 4 (судя по обращению к mscor*.dll
wolkow70
21-07-2012, 11:19
а написать то, нужно было всего 2 строчки »
Оказалось, что не так все просто.
В таком виде:
Function .OnInit
StrCpy $1 ${MultiUser}
SetCurInstType 0
SectionSetFlags ${MultiUser} 1
SectionSetFlags ${AllUser} 1
FunctionEnd
функция не работает как требуется.
Во, первых, по умолчанию снова стал запускаться InstType "По выбору"
Во, вторых секции радиобутона при запуске обе отмечены.
Оставил только SectionSetFlags ${MultiUser} 1 радиобутон стал запускаться правильно, но тип установки "Сокращенная" по умолчанию не вернулся.
Поменял последовательность команд так:
SectionSetFlags ${MultiUser} 1
SetCurInstType 0
тип установки "Сокращенная" по умолчанию вернулся, но секции радио-буттона опять не отмечены.
Вывод напрашивается такой:
Команды SectionSetFlags ${MultiUser} 1 и SetCurInstType 0 не совместимы между собой. Работает в зависимости от последовательности или одна или другая.
Видимо, прав был kotkovets , что в таких ситуациях лучше делать собственную страницу, только не хочется с этим заморачиваться, до сих пор удавалось без них обходиться.
wolkow70, вы что тут мозги то подурите, я не понимаю?
Вам что от скрипта надо то в итоге???
Тип установки у вас "Скоращенная", ну так прописывайте в секции команду соответствующую "SectionIn 1" например или как там у вас, чтобы были отмечены секции, которые в данном типе установки
Вы серьёзно, запутали своими "требованиями", в итоге не понятно, что вам нужно
Сначала вы говорите, что не выбрана "Сокращенная", затем вы говорите, что не отмечены секции в группе радиобуттанов
Что вам в итоге нужно то??? Такое ощущение, что вы сами запутались и не можете поставить свой вопрос корректно
wolkow70
21-07-2012, 12:31
вы что тут мозги то подурите »
Никто тут мозги не пудрит, это вы тут в истерику срываетесь по пустякам.
Вопрос был задан предельно просто (достаточно посмотреть пост с вопросом).
Предложенное вами решение оказалось верным лишь отчасти, на что я и указал в предыдущем сообщении. То есть, одного этого решения оказалось недостаточно.
ну так прописывайте в секции команду соответствующую "SectionIn 1" например или как там у вас, чтобы были отмечены секции, которые в данном типе установки »
И одного этого оказывается недостаточно.
Вопрос решился комбинацией решений:
InstType "Сокращенная"
InstType "Полная"
InstType "Минимальная"
Section "Установить для всех Пользователей" MultiUser
SectionIn 1 2 3
${GetSecWriteSucces} MultiUser
SectionEnd
;
Section /o "Установить для текущего Пользователя" AllUser
SectionEnd
;
Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${MultiUser}
!insertmacro RadioButton ${AllUser}
!insertmacro EndRadioButtons
FunctionEnd
;
Function .OnInit
StrCpy $1 ${MultiUser}
SetCurInstType 0
SectionSetFlags ${MultiUser} 1
FunctionEnd
Вот так все работает как надо. С трудом я от вас получил помощь, но все равно спасибо.
Читайте документацию к тулбару, думаю можно запустить его установку в скрытом режиме.... »
в скрытом нельзя. чел-к должен согласится с установкой сначала.
чел-к должен согласится с установкой сначала. »
И в чем же проблема, показать либо собственное сообщение на согласие установки, либо создать собственную страничку, и запускать потом тулбар в скрытом режиме
В чем разница?
Это проще, чем отлавливать процесс тулбара и манипулировать им
Vincent7
21-07-2012, 23:49
K.A.V., такой вопрос, мне надо вывести результат такого то значения реестра в этом значении 20 символов,идут они подряд, прочитать я знаю как. Но, нужно вывести это значение так чтобы после каждого четвертого символа был знак - . Тоесть, значение допустим такое: ABCDEFGHIJKLMNOPQRST
А вывести надо так: ABCD-EFGH-IJKL-MNOP-QRST
Как такое сделать?
либо создать собственную страничку »
Запустив toolbar.exe, он показывает предложение установить тулбар - тулбары разные! - какой именно тулбар будет предложен установить, зависит от страны. Поэтому сделать свою страницу под тулбар никак, а чел-к должен видеть какой именно тулбар он устанавливает.
значение допустим такое: ABCDEFGHIJKLMNOPQRST
А вывести надо так: ABCD-EFGH-IJKL-MNOP-QRST Как такое сделать? »
Например, с помощью StrCpy отсчитываешь нужное количество символов - с начала(или с конца) строки и, нужное последующее количество символов. Примеры в справочнике. А потом, в "итоговую" переменную помещаем полученные переменные, с занесёнными в них нужными группами символов и разделяем дефисами (чёрточками).
Наверняка есть и ещё варианты.
при установке программы запускается тулбар.ехе »
Не чётко поставлена задача. Запускаешь какую программу ? Собственную, скрипт на NSIS - или вызываешь внешнюю из скрипта или ещё одну программу из тела скрипта ? Тулбар запускается в какой очерёдности ? Сразу после запуска этой твоей программы ?
Если сразу после запуска, и его окно оказывается на заднем плане, то просто запускай саму программу свёрнутой, а после отработки процесса тулбара продолжится выполнение программы (в свёрнутом состоянии)
Если же , после выбора опций в тулбаре и его установки , должно продолжиться выполнение твоей программы с выбором опций, т.е. нужно появление её окна - то организуй скрипт так, чтобы запускалась первая "управляющая" скрипт-программа в свёрнутом виде, затем запускался тулбар, а по окончании процесса отработки тулбара должна запуститься основная программа.
По моему это самое простое решение, если я тебя правильно понимаю...
(Можно конечно отслеживать параметры и момент появления окна тулбара и окна самой программы, перефокусировать окна (делать активными) - но это будет гемор ещё тот... Разве что вклинишь в свой скрипт AutoIt_эшную приблуду. С AutoIt это будет сделать просто, но какая будет реакция антивирей на такую матрёшку... :) )
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC