Ru-Board.club
← Вернуться в раздел «Программы»

» NSIS (Nullsoft Scriptable Install System)

Автор: cRAzY_kRONiC
Дата сообщения: 21.08.2006 00:38
IMPOMEZIA


Цитата:
Вы что в ручную ioCheks.ini писали

И да и Нет!

За прогу спасибо! Глянул, глядел, глядел, крутил - отсос! (не понравилась, какая-то не удобная)
Ничего не понимаю. Может потом, пока как-нибудь так, как-нибудь так.

[more=Мой не доработанный скрипт здесь]
ioCheks.ini


[Settings]
NumFields=4

[Field 1]
Type=label
Text=Выберите дополнительные задачи, которые нужно выполнить:
Left=0
Right=-1
Top=0
Bottom=10

[Field 2]
Type=checkbox
Text=Добавить ярлык на Рабочий стол
Left=0
Right=-1
Top=30
Bottom=40
State=0

[Field 3]
Type=checkbox
Text=Добавить ярлык на панель Быстрый запуск
Left=0
Right=-1
Top=60
Bottom=70
State=0

[Field 4]
Type=checkbox
Text=Добавить ярлык в меню Пуск
Left=0
Right=-1
Top=90
Bottom=100
State=0


Проект v1.0.nsi

Read a value from an InstallOptions INI file
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 2" "State"
StrCmp $INI_VALUE "1" "" +1
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 3" "State"
StrCmp $INI_VALUE "1" "" +1
CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 4" "State"
StrCmp $INI_VALUE "1" "" +1
SectionEnd[/more]
Ну вот так, всё равно не то.
Помогите тупому юзверю!
Что не так написано, возможно проблемы со строчкой StrCmp $INI_VALUE "1" "" +1
Автор: IMPOMEZIA
Дата сообщения: 21.08.2006 02:24
cRAzY_kRONiC

Цитата:
возможно проблемы со строчкой StrCmp $INI_VALUE "1" "" +1

Надо так: StrCmp $INI_VALUE "1" "" +2
или лучше так: StrCmp $INI_VALUE 1 0 +2
В первоначальном варианте правильно было

+2 Означает переход, пропускается текущая строчка и пропускается следующая строчка (т. е. пропускается на 1 меньше чем указано после +)




Автор: cRAzY_kRONiC
Дата сообщения: 21.08.2006 10:59
IMPOMEZIA

Будь добр на пальцах объясни, конкретно для этого случая:
Что нужно исправить в строчке StrCmp $INI_VALUE для каждой последующей, чтобы галочки работали по отдельности.

;Read a value from an InstallOptions INI file CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 2" "State"
StrCmp $INI_VALUE "1" "" "+2"
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 3" "State"
StrCmp $INI_VALUE "1" "" "+2"
CreateShortCut "$STARTMENU\${PRODUCT_NAME}.lnk" "$INSTDIR\${Main_Exe_File}" "" "$INSTDIR\${Main_Exe_File}" 0
!insertmacro MUI_INSTALLOPTIONS_READ $INI_VALUE "ioCheks.ini" "Field 4" "State"
StrCmp $INI_VALUE "1" "" "+2"
SectionEnd
Автор: IMPOMEZIA
Дата сообщения: 21.08.2006 14:46
cRAzY_kRONiC

[more=ioCheks.ini]
ioCheks.ini

Код:
[Settings]
NumFields=4

[Field 1]
Type=label
Text=Выберите дополнительные задачи, которые нужно выполнить:
Left=0
Right=-1
Top=0
Bottom=10

[Field 2]
Type=checkbox
Text=Добавить ярлык на Рабочий стол
Left=0
Right=-1
Top=30
Bottom=40
State=0

[Field 3]
Type=checkbox
Text=Добавить ярлык на панель Быстрый запуск
Left=0
Right=-1
Top=60
Bottom=70
State=0

[Field 4]
Type=checkbox
Text=Добавить ярлык в меню Пуск
Left=0
Right=-1
Top=90
Bottom=100
State=0
Автор: cRAzY_kRONiC
Дата сообщения: 21.08.2006 23:59
IMPOMEZIA
Огромная благодарность!!! Респект!
Ура, насабачился. (возможно ещё какие-нибудь возникнут вопросы, более сложные)
Автор: ilyaor
Дата сообщения: 29.08.2006 16:01
вроде всё в инсталере сделал, но тут споткнулся на непреодалимом. итак реализовать нужно такую схему - инсталятор скачивает архив ( это я знаю как сделать, а вот далее...)и расспаковывает его в процессе инсталяции. подскажите в каком направлении nsis рыть.. для скачивания использую плагин InetLoad.dll..
Автор: iglezz
Дата сообщения: 29.08.2006 17:01
Для распаковки zip-архива - есть плагины nsisunz и ZipDLL, для rar/7zip/etc можно организовать через консольный вариант соответствующего распаковщика, используя nsExec.
Автор: sank89
Дата сообщения: 31.08.2006 06:23
А как можно сделать разбиение инсталяции по 700 мегобайт?
Автор: SmarterBB
Дата сообщения: 02.09.2006 18:50
Как реализовать следующую схему:
Инсталлятор копирует файлы в выбранную папку (или во временную), останавливается на 99%, после этого запускается программа-патчер (которая извлеклась)(консольная программа), после завершения ее работы прогресс доходит до 100%.
Подобная схема встречается на пиратских играх, когда сначала копируется архив, а потом он извлекается, и пока не извлечется, работа инсталятора не завершается.
ЗЫ если такое уже обсуждалось, скажите, на какой странице.
ЗЗЫ для реализации такой схемы нужно использовать nsExec, я прав?
Автор: iglezz
Дата сообщения: 02.09.2006 20:22
в общем так.
у меня в паре инсталлеров идет копирование файлов, а затем запускается внешний скрипт. пока он работу не закончит, инстраллер молчит, ждет завершения задачи.
nsExec хорош для того, чтобы не открывать окно консоли + может вывод перенаправлять в лог.
если обработчик не консольный, можно просто ExecWait применить.
Автор: SmarterBB
Дата сообщения: 02.09.2006 20:37
еще одну схему не знаю как реализовать - появляется 3 радиобаттона -
вариант файла1
вариант файла2
вариант файла3
Вопрос первый - как реализовать радиобаттоны и переход к конкретной установке? второй вопрос - файлы, устанавливаемые в любом случае, имеют одно имя, но разное содержимое. а в одной папке со скриптом нельзя держать 3 совершенно разных файла с одним и тем же именем...
Автор: SmarterBB
Дата сообщения: 03.09.2006 18:50
такое чувство, что форум вымер... скачал на nsis.sourcefordge.net образец с радиобаттонами, а при компиляции оно выдает ошибку...

ЗЫ как сделать так, чтобы инсталлер проверял наличие нескольких файлов, а не только одного...
Автор: mikar
Дата сообщения: 10.09.2006 06:58
NSIS 2.20

[Release Notes]

Скачать:
http://prdownloads.sourceforge.net/nsis/nsis-2.20-setup.exe?download
Автор: kolins1982
Дата сообщения: 12.09.2006 20:17
Доброго времени суток.
Столкнулся с проблемой - нееобходимо создать дистрибутив ОДНИМ файлом.
Изначально использовал Inno Setup, все устраивало, но он при размере дистрибутива более 2 Гб начинает бить файл на части (Setup-1.bin, Setup-2.bin.....).
На офф. сайте nsis было написано: · Installers can be as large as 2GB
Но когда я начал компилить, на 2 Гб просто все оборвалось (и файл из временной папки просто удаляется (()
Как можно этого избежать ? Ведь сказано же, что он может это?
Автор: PlasticAngel
Дата сообщения: 15.09.2006 13:12
Скажите pliz, как в NSISе можно использовать (устанавливать) Merge модули MSM?
Автор: Nikolai2004
Дата сообщения: 15.09.2006 22:07
kolins1982
может у тебя файловая система FAT32? для поддержки больших файлов нужна NTFS
Автор: Garrett
Дата сообщения: 17.09.2006 00:48
Nikolai2004
FAT32 держит до 4GB
Автор: kirillkr
Дата сообщения: 22.09.2006 08:48

Цитата:
А как можно сделать разбиение инсталяции по 700 мегобайт?

Пока никак.
Автор: Goncharenko
Дата сообщения: 22.09.2006 13:57
Danil Lab

сайт не доступен, как-бы статьи почитать ??
Автор: SmarterBB
Дата сообщения: 22.09.2006 20:21
тут же где-то была ссылка на multivolume.zip там как раз есть разбитие файла по 700МБ...
ЗЫ свои проблемы решил, но вот не могу заменить чекбоксы на радиобаттоны (визуально), скачал с сурсфорджа пример а он блин не компилируется...
Автор: Garrett
Дата сообщения: 22.09.2006 22:46
SmarterBB
Замени
Type=Checkbox
на
Type=RadioButton

Добавлено:

Цитата:
А как можно сделать разбиение инсталяции по 700 мегобайт?

А если сетап заархивировать в самораспаковывающийся архив с разбиение на тома по 700 метров?
Автор: sank
Дата сообщения: 23.09.2006 09:34
Здравствуйте. Я не давно писал про разделение на 700mb. Скачал
multivolume.zip и вот вопрос как им пользоваться объясните. И еще
вопрос многим он покажется интересным. Имеется три компонента если
выбрать первые два то ничего не будет а если выбрать третий то
появиться страница с вводом пароля т.е. без ввода пароля третий
компонент не будет установлен а два другие установятся.
Автор: Nikolai2004
Дата сообщения: 23.09.2006 13:55
Garrett

Цитата:
А если сетап заархивировать в самораспаковывающийся архив с разбиение на тома по 700 метров?

ха-ха. вот это насмешил! тогда теряется вообще смысл сетапа. можно ведь и просто файлы заархивировать
Автор: Garrett
Дата сообщения: 23.09.2006 15:24
Nikolai2004
Я так понимаю дробление было нужно, чтоб принести куда-то на дисках(CD).
Так какая разница, как мы принесем на клиентскую машину сетап?
Насчет твоего последнего предложения. Сетап может делать больше чем архив.
Автор: Wtm
Дата сообщения: 23.09.2006 16:59

Цитата:
файлы, устанавливаемые в любом случае, имеют одно имя, но разное содержимое. а в одной папке со скриптом нельзя держать 3 совершенно разных файла с одним и тем же именем...

никто же не мешает брать файлы для компиляции скрипта из РАЗНЫХ папок Устанавливать их потом можно по одному пути, но изначально - они могут у тебя быть хоть на другом диске
Т.е. другими словами: тебе нужно, чтобы файл "file.exe" был в трех вариантах. Кладешь его в папки FOLDER1 (вариант 1 - лежит file.exe #1), FOLDER2 (вариант 2 - лежит file.exe #2), и т.д. А путь для установки каждому файлу назначаешь один и тот же. Куда уж проще?
Автор: Nikolai2004
Дата сообщения: 23.09.2006 19:48
Garrett

Цитата:
Я так понимаю дробление было нужно, чтоб принести куда-то на дисках(CD).

нет, не для того чтобы куда-то принести, а для того чтобы сделать профессиональную установку большого продукта. где ты видел чтобы что-то релизили в инсталлере, который заархивирован, а тома лежат на разных дисках? офигенно удобно. ещё и 2 раза разпаковывать, т.е. надо в 2 раза больше места


Цитата:
Так какая разница, как мы принесем на клиентскую машину сетап?

инсталлер должен сам разбиваться на тома (как inno setup или тот же install shield) - это большая разница. nsis этого не умеет и, как я могу судить по официальному форуму, данная функция у разработчиков не является приоритетной...
Автор: Garrett
Дата сообщения: 23.09.2006 23:14
Nikolai2004
>большая разница
тогда зачем им пользоваться тому, кто устанавливает гигабайты?
Лично ты зачем выбрал NSIS, а не другой инсталлятор?(можно в ПМ)

> как я могу судить по официальному форуму
а какие планы у разработчиков? (вкратце)
Автор: Nikolai2004
Дата сообщения: 24.09.2006 20:21
Garrett

Цитата:
тогда зачем им пользоваться тому, кто устанавливает гигабайты?

именно это и сдерживает тех, кто устанавливает гигабайты (не меня). но я бы был не против если бы nsis это умел. а вдруг когда-нибудь понадобится...


Цитата:
а какие планы у разработчиков? (вкратце)

вкратце шлют всех подальше и предлагают большие инсталлеры делать либо копированием файлов, либо через CAB-архивы
http://forums.winamp.com/showthread.php?s=&threadid=131853
Автор: SmarterBB
Дата сообщения: 24.09.2006 23:17
а как checkbox заменить на radiobutton в обычном installOptions примере?
Автор: Garrett
Дата сообщения: 25.09.2006 07:01
SmarterBB
посмотри выше мой пост для тебя

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364

Предыдущая тема: The Bat!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.