powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / NSIS или Inno Setup?
25 сообщений из 159, страница 4 из 7
NSIS или Inno Setup?
    #35568566
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sh1td0wnа можно делать инсталлер чтоб на несколько дисков?
NSIS не умеет, Inno - умеет.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35568649
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextMan Sh1td0wnа можно делать инсталлер чтоб на несколько дисков?
NSIS не умеет, Inno - умеет.
В NSIS для этого есть CABSetup plug-in.

И это правильно, имхо. В наше время редко нужен этот функционал.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35568673
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, кто - нибудь знает, как рантайме менять/запрещать опцию запуска приложения на финишной стричке (MUI2)?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35568678
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, для того, чтобы изменить параметры запуска, нужно в качестве параметров соотв. макросов (MUI_FINISHPAGE_RUN/MUI_FINISHPAGE_RUN_TEXT) использовать не константы, а переменные.

Ну и определить перед страничкой функцию FinishPageShow:

!define MUI_PAGE_CUSTOMFUNCTION_SHOW FinishPageShow

в которой менять значением переменных.

А вот как дизейблить запуск?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35568686
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот как дизейблить запуск?
Вот чё нарыл: в той же функции настройки странички меняем чек-бокс на "анчекед", и вообще дизейблим чекбокс.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function FinishPageShow
  ...
  ${if} <Надо дизейблить запуск>
    SendMessage $mui.FinishPage.Run ${BM_SETCHECK} ${BST_CHECKED}  0  #анчекед
    ShowWindow $mui.FinishPage.Run SW_HIDE # Прячем чекбокс
  ${endif}
FunctionEnd
В mui.FinishPage.Run - это как раз дескриптор того самого чекбокса, который создается при наличии MUI_FINISHPAGE_RUN:
Код: plaintext
1.
2.
3.
4.
5.
      ;Checkboxes
        !ifdef MUI_FINISHPAGE_RUN
          ${NSD_CreateCheckbox} 120u ${MUI_FINISHPAGE_RUN_TOP}u 195u 10u "${MUI_FINISHPAGE_RUN_TEXT}"
          Pop $mui.FinishPage.Run
...
 
(модуль Finish.nsi)

Прикольно, теперь к контралам можно по-людски, по именам переменных обращаться... :)
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35579183
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, а кто как строит деинсталлятор?
Ну, предствьте себе, что долбаные юзеры первый раз запустили инсталлятор, инсталлировали два компонента (секции) из шести, потом снова запустили, и инсталлировали еще два других, но установили в другую папку установки, потом запустили еще раз полную инсталляцию, но в ту же папку, куда была выполнена первая инсталляция...
Потом несколько раз инсталлировали патчики, которые подменяли нужные файлы и т.п....
Ну, а потом запустили деинсталлятор. Который должен весь этот бред вычистить, кроме элементов, помеченных как "не деинсталлировать никогда"...
Как делаем?
...
...
Ну, вот я за основу взял http://nsis.sourceforge.net/Talk:Uninstall_only_installed_files - но такая мутотень вышла, атас полный:
Типа, при первой инсталляции в реестре фиксируется место, куда пишем денсталляционный лог, а потом его только дополняем. Но не так, как в ссылке (там просто дописываем), а типа .INI - файла, в котором добавляются несуществующие ключи и модифицируются их значения (напр., признак "не деинсталлировать" и т.п.). Потом деинсталлер парсит этот .ini, и выполняет деинст - операции...
Муторно, но работает вроде бы...
Ну вот, лог - файл получается в худшем случае двадцать - тридцать килобайт весом (т.е. небольшой), в связи с чем подумал: а не хранить ли все деинсталляционные логи просто в ветке реестра?

Народ, поделитесь соображениями/опытом, пжалста... :)
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35579186
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, правильная ссылка вот: http://nsis.sourceforge.net/Uninstall_only_installed_files
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35579325
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextMan
Ну вот, лог - файл получается в худшем случае двадцать - тридцать килобайт весом (т.е. небольшой), в связи с чем подумал: а не хранить ли все деинсталляционные логи просто в ветке реестра?
Вот чего бы не делал, так именно этого. Пусть лог хранится там, куда инсталится ПО. Его оттуда замечательно можно достать и процедура установки обновление|новая очень понятна и прозрачна. Директория установки является естественным разделителем ветки в алгоритме установки.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35579335
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqllex NextMan
Ну вот, лог - файл получается в худшем случае двадцать - тридцать килобайт весом (т.е. небольшой), в связи с чем подумал: а не хранить ли все деинсталляционные логи просто в ветке реестра?
Вот чего бы не делал, так именно этого. Пусть лог хранится там, куда инсталится ПО. Его оттуда замечательно можно достать и процедура установки обновление|новая очень понятна и прозрачна. Директория установки является естественным разделителем ветки в алгоритме установки.
Ну, так все и есть сейчас.
...
А почему - "не делал бы"? Реестр Windows есть священная корова? Или другие соображения?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35580187
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextMan
А почему - "не делал бы"? Реестр Windows есть священная корова? Или другие соображения?
В реестр лазят другие прграммы, которые могут его "удачно" почистить. Плюс восстановление системы.
Через "ини" (как отдельный файл) проще отладка и последующее сопровождение.
ИМХО.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35586963
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, незадачка... :(
Некоторые файлы содержат по два идущих подряд символа $: 'File$$.EXP'
Команда NSIS "File" позволяет использоваать такие имена, а при попытке записать их в ini - файл два $$ схлопываются в один, в соотв. с правилами представления строк.
Т.е., к примеру:
Код: plaintext
1.
2.
3.
 StrCpy $ 0  "C:\'File$$.EXP'"
 File $ 0  # все гут.
 WriteINIStr "MyFile.ini", "MySection", $ 0 , "Тра-ля-ля" # Создается ключ с именем "C:\'File$.EXP'"

Рррр! & ?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35588476
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqllex NextMan
А почему - "не делал бы"? Реестр Windows есть священная корова? Или другие соображения?
В реестр лазят другие прграммы, которые могут его "удачно" почистить. Плюс восстановление системы.
Через "ини" (как отдельный файл) проще отладка и последующее сопровождение.
ИМХО.
Это-то да...
Но вот сегодня размер секции превысил допустимый размер буфер для фукнции GetPrivateProfileSection (32767 байт)... И песец.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35588922
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextMan
Это-то да...
Но вот сегодня размер секции превысил допустимый размер буфер для фукнции GetPrivateProfileSection (32767 байт)... И песец.
Ну так GetPrivateProfileSection - 16-битная WinAPI функция.

А чего же ты умыдрился напихать туда, что в 32к не поместилось?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35589063
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Список файлов для последующей денсталляции...
Причем, если в WinNT писать ini файлы можно любого размера (читать, естественно, "ручками" - см. выше), то в Win9x больше 64к файлики и не создаются...
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35589305
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextManСписок файлов для последующей денсталляции...
Полные пути? Заменить на относительные.
Маски нельзя использовать?
А какое кол-во файлов в одной секции и что собой представляет название секции?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35590105
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. sqllex NextManСписок файлов для последующей денсталляции...
Полные пути? Заменить на относительные.
Маски нельзя использовать?

Полумеры.
2. sqllex
А какое кол-во файлов в одной секции и что собой представляет название секции?
Разное количество, большое или маленькое, в зависимости от пожеланий заказчика.
Название секции - слово. "Files", "ComServers", "Directories" и т.д.

3. Переделано на использование реестра. Полет нормальный.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35590237
Inno Setup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NSIS говно, высранное каким-то недоноском, помешанном на ссах и ссах с крестами. это чмо ниасилило нормальный скриптовый язык? за один стековый язык этот котях должен быть выброшен в биореактор. это поделие под висту может инсталяты нормальные делать, а? InnoSetup может, а эта хуета нет. Так что тут нечего и думать, однозначно Inno лучше.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35590247
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глупыш, все там есть - и структурный язык (правда, в виде расширения - см. Logiclib), и поддержка Vista.
В обоих присутствует наличие отсутствия легко настраивать интерфейс пользователя "на лету", но в MUI2 и это стало простым делом.
Ну, еще Inno попроще дельфятнику освоить.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35590261
nelson mandella
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Советовать категорично что-то тут не получится. У каждого свой взгляд на удобство инсталлера.
Дельфятнику Inno точно лучше. Особенно хорош для дистрибутивов своих компонентов, когда нужно на лету инсталлить их, предварительно собрав пакеты.
Также, как ни странно, Inno лично мне неплохо подошел и для C#-проектов. Наличие готовых скриптов, например, закачивающих Framework из Интернет, а также готовых проектов для дистрибуции компонентов - несомненный плюс Inno. А так - на вкус на цвет...
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35590867
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nelson mandellaОсобенно хорош для дистрибутивов своих компонентов, когда нужно на лету инсталлить их, предварительно собрав пакеты.
Также, как ни странно, Inno лично мне неплохо подошел и для C#-проектов. Наличие готовых скриптов, например, закачивающих Framework из Интернет, а также готовых проектов для дистрибуции компонентов
Т.е. эти 2 действия у тебя не получилось сделать с помощью NSIS? А в чем проблемы то были?
Detect and download the .NET framework
Installing the Microsoft .NET Framework
How to Automatically download and install a particular version of .NET if it is not already installed
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35602356
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, кто-нибудь знает, как внутри секции определить, что это за секция? :)

Задача в том, что есть некоторый универсальный макрос, который делает разные вещи в зависимости от того, в какой секции он находится.
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35602735
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...пошлым образом завел переменную, которую инициализирую в начале каждой секции ее индексом... :(
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35603096
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня сын из пачки с "несквиком" достал компакт-диск с игрой.
Ну, приз, типа.


Так вот, там прикольный инсталлятор: небольшой Setup.exe и .jar - архив на 500 мегабайт.
Первый создает "на лету" jre, и раскручивает второй.

А во втором - что хочешь, с любой логикой (ява, типа)... :)
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35603834
sqllex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextManНарод, кто-нибудь знает, как внутри секции определить, что это за секция? :)

Задача в том, что есть некоторый универсальный макрос, который делает разные вещи в зависимости от того, в какой секции он находится.
Параметр section_index_output ?
...
Рейтинг: 0 / 0
NSIS или Inno Setup?
    #35604787
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqllexNextManНарод, кто-нибудь знает, как внутри секции определить, что это за секция? :)

Задача в том, что есть некоторый универсальный макрос, который делает разные вещи в зависимости от того, в какой секции он находится.
Параметр section_index_output ?

Хм. "А я что спросил?" -(c)

Код: plaintext
1.
2.
3.
Section

[/o] [([!]|[-])section_name] [section_index_output]

Т.е., например, для такого объявления:

Код: plaintext
1.
2.
3.
4.
Section "Первая секция" var_index

; Как здесь узнать значение, заданное параметру var_index?

SectionEnd
Дело в том, что это не переменная (Var), а определение. Т.е., аналог будет
!define var_index 0

Для другой секции придется использовать другое имя для section_index_output, иначе получим отлуп в виде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Section "Первая секция" var_index
...
SectionEnd

Section "Вторая секция" var_index
; Здесь ошибка:
; Error: "var_index" already defined, can't assign section index!

SectionEnd

Вот так вот.
:(
...
Рейтинг: 0 / 0
25 сообщений из 159, страница 4 из 7
Форумы / Delphi [игнор отключен] [закрыт для гостей] / NSIS или Inno Setup?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]