Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

 
NSIS (Nullsoft Scriptable Install System)
Скриптовая система создания инсталляционных пакетов от авторов Winamp

Основные характеристики:
 
  • Размер дистрибутива около 1,5 МБ
  • Наличие в базовом пакете файлов с примерами и подробной справки
  • Чрезвычайная гибкость при создании инсталляций для своих программ
  • Открытый исходный код
  • Использование различных алгоритмов сжатия (ZLIB, BZIP2, LZMA)
  • Наличие различных плагинов
     
    Новейшая версия ветки 2.х: NSIS 2.51 (от 1 апреля 2016 г., статус ветки - Old Releases)
    Новейшая версия ветки 3.х: NSIS 3.10 (от 30 марта 2024 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.10NSIS 3 Pre-releaseNSIS 2 Pre-releaseисходники (SVN)
     
    Дополнительно: [ плагины, примеры и полезности ] • [ форум разрабочиков ] • [ Wiki ]
     
    Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]
     
    NSIS Unpacker
    7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.  
    Обратите внимание, что 7za не поддерживает распаковку.
     
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново – это единственный корректный вариант. Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы – это в основном "русификаторы" с непредсказуемыми последствиями применения.
     
    64-х битное развитие идей NSIS. В разработке, аннотация разработчика nsisbi.
     
    Просьба к тем, кто будет править шапку, сначала сверяться с http://nsis.sourceforge.net/Main_Page и не выдавать желаемое за действительное.

  • Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 14:21 06-10-2001 | Исправлено: DimmY, 11:10 31-03-2024
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    heloy2010

    Цитата:
    @="\"C:\\86\\ad.exe\" \"%1\""  

    В NSIS запись простая - WriteRegStr {HKLM|HKCR|HKCU|HKU} "путь_включая_ключ" "имя_значения" "данные" у остальных инструкций чтения/записи Реестра формат аналогичный. И двойные слэши в этих инструкциях не нужны. У вас будет такая строка:

    Код:
    WriteRegStr HKLM "SOFTWARE\Classes\Msi.Package\shell\Edit\command" "" '"C:\86\ad.exe" "%1"'
     
    - причём имя подключа Edit стандартное, но тут похоже что-то новенькое. Видать чтобы ось не догадалась где и что искать.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33207 | Зарегистр. 31-07-2002 | Отправлено: 02:29 10-11-2019
    heloy2010

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
    Victor_VG
    Благодарю вас за помощь, сейчас всё в порядке.

    Всего записей: 250 | Зарегистр. 17-05-2019 | Отправлено: 16:40 10-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что за версия такая появилась, о ней никто не в курсе?
     

    Цитата:
    Разработчик: Nullsoft
    Лицензия: FreeWare - Бесплатно
    Язык: English - Русская версия и Русификатор отсутствуют
    Размер: 3 MB
    ОС: Windows XP+
    Последняя Версия: 3.5.7131.0 Portable Jooseng (Workbench)
    Скачать программу NSIS - не официальная версия

    Выложили здесь: https://rsload.net/soft/32760-nsis.html
    Сайт вроде в порочных делах не замечен, потому весьма странно.
     
     
    Добавлено:
    Кстати, на днях приятным сюрпризом оказалось, что NSIS установка, собранная в свежей 3.04 версии, отлично работает на Win98SE. Хороший сюр.

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 23:56 10-11-2019 | Исправлено: insorg, 23:56 10-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
     3.5.7131.0 Portable Jooseng (Workbench)  

    Перепаковка от некоего китайского гражданина.

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

    Ну так базовый функционал довольно скромен (хотя и позволяет фактически программы писать), распоследних либ не требует.

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 01:12 11-11-2019 | Исправлено: iglezz, 01:13 11-11-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
     
    Так у меня к примеру именно так ряд утилей сделан - возможностей NSIS для этого достаточно, так почему бы и нет? Пнул и занялся своими делами, а она сама что надо сделает. Можно было б и на скриптах, но енто на публику, а там консоль не жалуют. Ну, получите робота с окошками.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33207 | Зарегистр. 31-07-2002 | Отправлено: 04:30 11-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ткните, плиз, мородой в работоспособный пример, кто шарит.
     
    Курю маны по тихой установке, в примере указывают вот так:
    foo.exe /S /USERNAME=Bar /D=C:\Program Files\Foo
     
    Суть вроде понятна, но не хватает одного существенного момента. У меня, например, в одну установку собраны все варианты нужных мне настроек к софтине и ресурсов. Соответственно, во время установки я явно указываю один из нескольких вариантов, который нужно отработать.
    Некоторые из секций отмечены через "/o", некоторые - нет. Соответственно, если вызывать установку через "/S", то отрабатывается стандартная комбинация отмеченных птичек. Как можно явно указать, например, свою комбинацию птичек ком.строкой независимо от того, что прописано в установке?

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 23:09 12-11-2019 | Исправлено: insorg, 23:10 12-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg
    Ключи /S и /D стандартные для NSIS, для остальных код обработки создаёт автор установщика. Код при желании можно извлечь при помощи 7-Zip.

    Цитата:
    Некоторые из секций отмечены через "/o", некоторые - нет. Соответственно, если вызывать установку через "/S", то отрабатывается стандартная комбинация отмеченных птичек. Как можно явно указать, например, свою комбинацию птичек ком.строкой независимо от того, что прописано в установке?  

    Если автором установщика такой сценарий не предусмотрен, то использовать, к примеру, AutoIt для установки нужных галок.

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 10:11 13-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
    Сам себе автор, сделал всё-в-одном установку, которую надо автоматически и без лишних вопросов устанавливать на чистые виртуалки в желаемой комбинации, зависимо от ситуации.
    Соответственно, что-то добавить в nsi труда не составит.

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 14:02 13-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg
    Тогда вот пример
     
    upd: bugfixed: $CMDLINE -> $R0

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 15:19 13-11-2019 | Исправлено: iglezz, 15:37 13-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как я понял, я добавляю в .nsi файл строку
    Код:
     !include "Sections.nsh"  

     
    В названиях подлежащих выбору секций у меня уже есть псевдонимы
    Код:
    Section "Drivers 32 bit" g1o1

    Код:
    Section "Drivers 64 bit" g1o2

    Код:
    Section "Portable soft 32 bit" g1o3

    Код:
    Section "Portable soft 642 bit" g1o4

     
    Тогда нужно запустить, например, такой батник:

    Код:
    @start "" SoftPack.exe /S /D=C:\Program Files\SoftPack /g1o3

    Или нет?
     
    И не совсем понял логику работы в приведённом Function .onInit.
     
    У меня, например, есть
    Код:
    Function .onInit
      StrCpy $1 ${g1o1} ; Group 1 - Option 1 is selected by default
    FunctionEnd
     
    Function .onSelChange
      !insertmacro StartRadioButtons $1
        !insertmacro RadioButton ${g1o1}
        !insertmacro RadioButton ${g1o2}
        !insertmacro RadioButton ${g1o3}
        !insertmacro RadioButton ${g1o4}
      !insertmacro EndRadioButtons
    FunctionEnd
    так что в многоэтажных конструкциях снятия лишних галочек я вроде как не буду нуждаться?

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 22:01 14-11-2019 | Исправлено: insorg, 22:07 14-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
    И не совсем понял логику работы в приведённом Function .onInit.  

    С использованием LogicLib оно хотя-бы человеком читаемое Если вкратце,
     
    Для использования с имитацией радиокнопки можно использовать такой код
    В данном случае передаём параметр /O#, где #=1..4 по числу секций примера
     
    И на всякий случай повторю: ключ /D= идёт последним, NSIS всё после него забирает в параметр ключа, в чём легко убедится добавив в .onInit команду`messagebox mb_ok $CMDLINE`

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 23:09 14-11-2019 | Исправлено: iglezz, 23:15 14-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
    На радостях добил до восьми пунктов на выбор, только пришлось немного пофиксить здесь:

    Цитата:
    Function .onInit
        Push $R0
        Push $R1
        Push $R2
      StrCpy $1 ${g1o1} ; Group 1 - Option 1 is selected by default
        ${GetParameters} $R0
        ${GetOptions} "$R0" "/G1O" $R1 ; для ключа /G1Oxxx $R1 = xxx
        ${IfNot} ${Errors}
            IntFmt $R2 "%u" $R1 ;xxx как число в пределах 1..N, где N=число_переключаемых_секций
            ${If} $R2 > 0
            ${AndIf} $R2 < 9 ; (N + 1)
                IntOp $1 $R2 - 1 ; внутренняя нумерация секций начинается с нуля
            ${EndIf}
        ${EndIf}
        !insertmacro UnselectSection ${g1o1}
        !insertmacro SelectSection $1

        Pop $R2
        Pop $R1
        Pop $R0
    FunctionEnd
     
    Function .onSelChange
      !insertmacro StartRadioButtons $1
        !insertmacro RadioButton ${g1o1}
        !insertmacro RadioButton ${g1o2}
        !insertmacro RadioButton ${g1o3}
        !insertmacro RadioButton ${g1o4}
        !insertmacro RadioButton ${g1o5}
        !insertmacro RadioButton ${g1o6}
        !insertmacro RadioButton ${g1o7}
        !insertmacro RadioButton ${g1o8}
      !insertmacro EndRadioButtons
    FunctionEnd
     

     
    До правки пункты 2...8 на установку галочки срабатывали, но отмеченный первый оставался. Похоже, какой-то баг, или недоработка. Ведь, на то оно и радиокнопка, что выбрано должно быть только одно.
     
    Впрочем, с подобным сталкивался, когда загонял строки  ${g1o1} ${g1o2} ${g1o3} в одну SectionGroup. Тогда получалось забавно, когда выбор галочки на группе автоматом инвертировал выбор внутри себя. Наример, был выбран 1, становились две галки 2 и 3. Был 2 - становилось 1 и 3. При явном перетыке руками внутри группы - выбор нескольких сбрасывался, оставляя только нажатое.
     
    Хотя... Хорошая идея.
    Вообще как-то осуществимо запихать секции с радиокнопками под группу так, чтобы тыканье по галке секции не создавало такой баг?
     
     
    iglezz
    Если я добавлю еще другую группу радиокнопок

    Цитата:
      !insertmacro StartRadioButtons $2
        !insertmacro RadioButton ${g2o1}
        !insertmacro RadioButton ${g2o2}
      !insertmacro EndRadioButtons  

    то как без конфликтов обработать обе в виде /G1O* и /G2O*?

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 20:16 16-11-2019 | Исправлено: insorg, 20:24 16-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
    До правки пункты 2...8 на установку галочки срабатывали, но отмеченный первый оставался. Похоже, какой-то баг, или недоработка. Ведь, на то оно и радиокнопка, что выбрано должно быть только одно.  

    В моём примере _все_ секции, входящие в группу радиокнопок, выключены. А у вас?
     

    Цитата:
    Впрочем, с подобным сталкивался, когда загонял строки  ${g1o1} ${g1o2} ${g1o3} в одну SectionGroup. Тогда получалось забавно, когда выбор галочки на группе автоматом инвертировал выбор внутри себя. Наример, был выбран 1, становились две галки 2 и 3. Был 2 - становилось 1 и 3. При явном перетыке руками внутри группы - выбор нескольких сбрасывался, оставляя только нажатое.  

    Код радиокнопок в Sections.nsh красив в своей простоте, но на SectionGroup просто не расчитан.
    Поэтому потихоньку пилю свою реализацию (с преферансом и поэтессами )
     

    Цитата:
    Вообще как-то осуществимо запихать секции с радиокнопками под группу так, чтобы тыканье по галке секции не создавало такой баг?

    Требуется небольшой фикс.
     
    Добавлено:

    Цитата:
    Если я добавлю еще другую группу радиокнопок  

    Добавить блок обработки. Как-то так. Принцип, я думаю, понятен.

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 20:32 16-11-2019 | Исправлено: iglezz, 20:34 16-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    В моём примере _все_ секции, входящие в группу радиокнопок, выключены. А у вас?  
    Первая включена (по умолчанию).
     

    Цитата:
    Поэтому потихоньку пилю свою реализацию (с преферансом и поэтессами )  
    Зело жду работоспособный код, если это осуществимо )))
     

    Цитата:
    блок обработки
    Спасибо.
     
     
     
    Добавлено:

    Цитата:
    Принцип, я думаю, понятен.

    Теперь вроде дошло. Смутило просто, можно ли повторно вот так подряд использовать $R0, $R1, $R2

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 20:49 16-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Смутило просто, можно ли повторно вот так подряд использовать $R0, $R1, $R2

    Их можно рассматривать как глобальные переменные общего значения и помнить что в них все писать могут (пользователь своими инструкциями, используемые макросы и плагины).

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 21:07 16-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     Требуется небольшой фикс.  

    Фикс не получился, получилась отдельная реализация радиокнопки
     
     

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 03:27 17-11-2019
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    insorg

    Цитата:
    Зело жду работоспособный код, если это осуществимо )))  

    Что-то среднее между beta и release candidate 1 на гитхабе.  
    Код ещё нужно причесать, решить, что делать с SectionGroup, который  ведёт себя своеобразно, но явных косяков не обнаружил.

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 01:08 21-11-2019
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо. Теперь осталось  тестить.

    Всего записей: 16549 | Зарегистр. 04-11-2010 | Отправлено: 16:49 10-12-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NSIS 3.05
     
    December 15th, 2019
     
    Release Notes
     
    ANSI targets are deprecated, consider moving to Unicode.
     
    Changelog
     
    Major Changes
     
  • Added PEAddResource and PERemoveResource
  • Added LoadAndSetImage
  • Allow quoted library path in System::Call (bug #546 and bug #1225)
  • Improved nsExec Unicode and tab output parsing (bug #1232)
     
    Minor Changes
     
  • Added experimental ManifestLongPathAware attribute
  • %1 in !finalize command can be specified multiple times
  • Fixed -O stderr stream issue (bug #1221)
  • Fixed InstallLib .NSI space-in-path bug (bug #1222)
  • StrFunc now supports a "using" idiom to help with forward-declaration of functions (bug #1229)
  • Added SectionInstType
  • Zero uninitialized data in icon group (bug #1230)
  • Automatically doubles ampersands in the Name attribute
  • Fixed nsDialogs CB/LB_Get/SetItemData macros (bug #1238)
     
    Translations
     
  • Updated Hindi (patch #291) and Portuguese (bug #1219)
     
    Я пока 2.51 обхожусь, новую версию только скачал и не смотрел.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

  • Всего записей: 33207 | Зарегистр. 31-07-2002 | Отправлено: 12:23 16-12-2019
    HEPBuk

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    ANSI targets are deprecated, consider moving to Unicode.  

     
    Теперь при билде в 3.05 старого проекта сделанного и работающего на 3.04 выводит:
    Warning 7998: ANSI targets are deprecated
     
    Есть рекомендации, что надо исправить?

    Всего записей: 22 | Зарегистр. 26-02-2007 | Отправлено: 10:26 17-01-2020 | Исправлено: HEPBuk, 10:26 17-01-2020
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru