PDA

Показать полную графическую версию : [архив].: NSIS - все вопросы :.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 [147] 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

Vincent7
20-07-2012, 16:18
K.A.V., с подсчетом разобрался благодарю вас за пример, а вот второй пример не сработал , ошибка SF EXPAND already defined

K.A.V.
20-07-2012, 17:33
НО его окно появляется на втором плане. как его вывести на первый план? »
Читайте документацию к тулбару, думаю можно запустить его установку в скрытом режиме....

Кто-нибудь может подсказать возможно ли это обойти ? »

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 ?

K.A.V.
20-07-2012, 18:31
Или 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'ом, но в нем минимум функционала.

K.A.V.
21-07-2012, 08:59
А скрипт большой слишком. Вряд ли кто-то разбираться будет в нем »
Я вам говорил про наличие секций в примере вашего когда, чтобы самому не приходилось что-то дописывать...

Блин, 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 строчки), вы больше времени теряете...
При не знании всё достигается путём тестов

MKN
21-07-2012, 09:38
Для справки :
Появилась очередная бета 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

K.A.V.
21-07-2012, 10:27
Появилась очередная бета NSIS Studio 2.1 beta »
Скачал, там старая версия 1.1 показывает после запуска программы

Какой FrameWork нужен этой программе? У меня постоянно вываливаются ошибки в программе и программа не работает как нужно
Удобная, лучше чем SFX Creator, по функционалу так посмотреть и не удалось

MKN
21-07-2012, 11:14
там старая версия 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 , что в таких ситуациях лучше делать собственную страницу, только не хочется с этим заморачиваться, до сих пор удавалось без них обходиться.

K.A.V.
21-07-2012, 12:09
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

Вот так все работает как надо. С трудом я от вас получил помощь, но все равно спасибо.

msn
21-07-2012, 17:44
Читайте документацию к тулбару, думаю можно запустить его установку в скрытом режиме.... »
в скрытом нельзя. чел-к должен согласится с установкой сначала.

K.A.V.
21-07-2012, 18:58
чел-к должен согласится с установкой сначала. »
И в чем же проблема, показать либо собственное сообщение на согласие установки, либо создать собственную страничку, и запускать потом тулбар в скрытом режиме
В чем разница?

Это проще, чем отлавливать процесс тулбара и манипулировать им

Vincent7
21-07-2012, 23:49
K.A.V., такой вопрос, мне надо вывести результат такого то значения реестра в этом значении 20 символов,идут они подряд, прочитать я знаю как. Но, нужно вывести это значение так чтобы после каждого четвертого символа был знак - . Тоесть, значение допустим такое: ABCDEFGHIJKLMNOPQRST

А вывести надо так: ABCD-EFGH-IJKL-MNOP-QRST
Как такое сделать?

msn
21-07-2012, 23:57
либо создать собственную страничку »
Запустив toolbar.exe, он показывает предложение установить тулбар - тулбары разные! - какой именно тулбар будет предложен установить, зависит от страны. Поэтому сделать свою страницу под тулбар никак, а чел-к должен видеть какой именно тулбар он устанавливает.

MKN
22-07-2012, 09:58
значение допустим такое: ABCDEFGHIJKLMNOPQRST
А вывести надо так: ABCD-EFGH-IJKL-MNOP-QRST Как такое сделать? »
Например, с помощью StrCpy отсчитываешь нужное количество символов - с начала(или с конца) строки и, нужное последующее количество символов. Примеры в справочнике. А потом, в "итоговую" переменную помещаем полученные переменные, с занесёнными в них нужными группами символов и разделяем дефисами (чёрточками).
Наверняка есть и ещё варианты.

MKN
22-07-2012, 10:13
при установке программы запускается тулбар.ехе »
Не чётко поставлена задача. Запускаешь какую программу ? Собственную, скрипт на NSIS - или вызываешь внешнюю из скрипта или ещё одну программу из тела скрипта ? Тулбар запускается в какой очерёдности ? Сразу после запуска этой твоей программы ?
Если сразу после запуска, и его окно оказывается на заднем плане, то просто запускай саму программу свёрнутой, а после отработки процесса тулбара продолжится выполнение программы (в свёрнутом состоянии)

Если же , после выбора опций в тулбаре и его установки , должно продолжиться выполнение твоей программы с выбором опций, т.е. нужно появление её окна - то организуй скрипт так, чтобы запускалась первая "управляющая" скрипт-программа в свёрнутом виде, затем запускался тулбар, а по окончании процесса отработки тулбара должна запуститься основная программа.

По моему это самое простое решение, если я тебя правильно понимаю...
(Можно конечно отслеживать параметры и момент появления окна тулбара и окна самой программы, перефокусировать окна (делать активными) - но это будет гемор ещё тот... Разве что вклинишь в свой скрипт AutoIt_эшную приблуду. С AutoIt это будет сделать просто, но какая будет реакция антивирей на такую матрёшку... :) )




© OSzone.net 2001-2012