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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Это даже прекрасно что вы её нашли - я сейчас обмозговываю одну задумку с применением этой библиотеки. И если получится, то мне удастся реализовать то, что у меня не получалось реализовать средствами NsProcess. Просто не хочу садится писать код пока в голове нет полной ясности как реализовать то, что я хочу сделать. Коли я уже несколько лет реализацию откладывал, то пара дней роли не сыграют, а халтурить не в моих правилах.

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 20:41 14-07-2015
    BuZzOFF89



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Можно ли как-то реализовать такое?
     
    Есть файл с названиями элементов. Элементов штук 50 (но может быть и больше). Один элемент - одна строка.
    Как сделать так чтоб считывались названия из файла и создавались CheckBox'ы с этими названиями.
    Т.к. CheckBox'ов много будет нужно как-то прилепить ещё и scroll...
    И как потом проверить статусы отметки всех этих элементов.
     
    P.S. Со считыванием названия и созданием CheckBox'а проблем нет. Не знаю как это зациклить :)
     
    upd1. Наверное только через IO такое получится. Но хотелось бы NSD.
     
    upd2. Сделал на IO. Работает. На NSD можно сделать? IO - не очень удобно...

    Всего записей: 410 | Зарегистр. 02-07-2010 | Отправлено: 09:54 17-07-2015 | Исправлено: BuZzOFF89, 13:13 17-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Как там у Вас, получается?
    Я тут что- то в ступор впал. Как назначить директорию установки не диск C:\, а %SYSTEM DRIVE%?

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 10:26 17-07-2015 | Исправлено: megane68, 10:27 17-07-2015
    BuZzOFF89



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

    Цитата:
    Как назначить директорию установки не диск C:\, а %SYSTEM DRIVE%?

    Как-то так...

    Код:
    Function .onInit
      StrLen $R0 $WINDIR
      StrCpy $R0 $WINDIR 3 -$R0
      StrCpy $INSTDIR $R0
    FunctionEnd

     
    Добавлено:

    Цитата:
    ProcessFunc.nsh

    Кстати, в справочнике по-моему старая.
    Вот для третьей версии => https://yadi.sk/d/KJ8IBBCzZn87w

    Всего записей: 410 | Зарегистр. 02-07-2010 | Отправлено: 10:53 17-07-2015 | Исправлено: BuZzOFF89, 10:56 17-07-2015
    Victor_VG



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

    Цитата:
    Как назначить директорию установки не диск C:\, а %SYSTEM DRIVE%?

     
    StrCpy $INSTDIR $WINDIR 3
     
    BuZzOFF89
     
    Перекидывания через кучу регистров и вычисления StrLen лишнее. Зачем правой задней ногой левое переднее ухо чесать?

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 16:18 17-07-2015
    Sanch8



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
    Можно ещё вот-так:

    Код:
    OutFile ExpandEnvStrings.exe
    Caption "ExpandEnvStrings"
     
    Function .onInit
    ExpandEnvStrings $0 "%SYSTEMDRIVE%"
    MessageBox MB_OK|MB_ICONINFORMATION "Системный диск: $0\"
    FunctionEnd
     
    Section
        SetAutoClose true
    SectionEnd

     

    Всего записей: 125 | Зарегистр. 29-01-2012 | Отправлено: 15:37 18-07-2015 | Исправлено: Sanch8, 15:38 18-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sanch8
     
    И этот код разумнее т.к. исключает возможность ошибок - ExpandEnvStrings $INSTDIR "%SYSTEMDRIVE%" , а далее дополняем код по месту.

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 16:55 18-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что- то я недопонял.
    Мне надо вместо  
    InstallDir "C:\SimpleTV"
    сделать  
    InstallDir "%SYSTEMDRIVE%\SimpleTV"
    Как этот код будет выглядеть полностью?

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 19:12 18-07-2015 | Исправлено: megane68, 19:31 18-07-2015
    Victor_VG



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

    Цитата:
    Мне надо вместо

    И только-то?
     
    ExpandEnvStrings $INSTDIR "%SYSTEMDRIVE%\SimpleTV"
     
    а как была изначально определена $INSTDIR этому коду по барабану - он её переопределяет.

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 19:35 18-07-2015 | Исправлено: Victor_VG, 21:23 18-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Я так понимаю, что надо сначала указать InstallDir "C:\SimpleTV", чтобы код её перенаправил, правильно?

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 20:16 18-07-2015 | Исправлено: megane68, 20:17 18-07-2015
    Victor_VG



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

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 20:21 18-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Указываю так:

    Цитата:
     
    Function .onInit
    ExpandEnvStrings $INSTDIR "%SYSTEMDRIVE%"
    StrCpy $INSTDIR $INSTDIR\SimpleTV
    FunctionEnd
     

    В результате в установщике пустое поле директории установки.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 20:31 18-07-2015 | Исправлено: megane68, 20:31 18-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    А про директиву InstallDir <dir> в хидере забыли? Определите её любым мусором до .onInit и всё работает. Например так:
     
    OutFile "setup.exe"
    InstallDir "C:\Win32\App" /* ВАЖНО! */
    ShowInstDetails show
    Function .onInit
    ExpandEnvStrings $INSTDIR "%SYSTEMDRIVE%\SimpleTV"
    FunctionEnd


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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 21:16 18-07-2015
    megane68



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

    Цитата:
    А про директиву InstallDir <dir> в хидере забыли? Определите её любым мусором до .onInit и всё работает. Например так:  

    Ну так я про это выше и спрашивал, что нужно указать InstallDir "C:\SimpleTV", а потом код её перенаправит.  
    Теперь вроде нормально. Позже проверю на системном диске с буквой D:\

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 21:25 18-07-2015 | Исправлено: megane68, 21:26 18-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Да, мне позвонили и я не верно понял ваш вопрос. Наличие директивы InstDir обязательно ибо она и создаёт переменную $INSTDIR, а вот её начальное значение может быть произвольным ибо его всегда можно переопределить в теле кода. И не важно где именно в калбаке, обычной функции или секции - главное до её использования.

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 21:31 18-07-2015
    megane68



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

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 21:42 18-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Пожалуйста, будут вопросы - подкидывайте. Я же и у себя в FarUE3 по дороге пару пометок /* рефакторинг v.....  пометить в changelog */ поставил дабы после не забыть про сиё хулюганству .


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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 21:52 18-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Хорошо. Помимо поступления буду спрашивать.
    Я ещё с прошлого раза так и не разобрался с RadioButton. Хотел скопировать установщик плеера foobar2000 для своей сборки, но всё как- то руки не доходят.
     
    Добавлено:
    Для SimpleTV хотел спросить, можно ли на стандартной странице Page Finish добавить чекбокс запуска не только плеера, но и ещё одной программы или для этого надо свою собственную конечную страницу делать?

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 22:35 18-07-2015 | Исправлено: megane68, 22:43 18-07-2015
    Victor_VG



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

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

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 00:03 19-07-2015
    BuZzOFF89



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

    Цитата:
    можно ли на стандартной странице Page Finish добавить чекбокс запуска не только плеера

    Код:
     !include "MUI2.nsh"
     
     Name "finish_test"
     OutFile "finish_test.exe"
     
     !define MUI_FINISHPAGE_RUN_TEXT "RunCheckBox"
     !define MUI_FINISHPAGE_RUN "Setup.exe"
     
     !define MUI_PAGE_CUSTOMFUNCTION_SHOW FinShow
     !define MUI_PAGE_CUSTOMFUNCTION_LEAVE FinLeave
     !insertmacro MUI_PAGE_FINISH
     
     !insertmacro MUI_LANGUAGE "English"
     
    Var CheckBox1
    Var Check1
     
    Function FinShow
      ${NSD_CreateCheckbox} 120u 102u 195u 10u "CustomCheckBox"
      Pop $CheckBox1
      ${NSD_SetState} $CheckBox1 1
      SetCtlColors $CheckBox1 "" "${MUI_BGCOLOR}"
    FunctionEnd
     
    Function FinLeave
      ${NSD_GetState} $CheckBox1 $Check1
      StrCmp $Check1 1 0 +2
      MessageBox MB_OK "CustomCheckBox = $Check1"
    FunctionEnd
     
    Section
    Sectionend


    Всего записей: 410 | Зарегистр. 02-07-2010 | Отправлено: 09:54 19-07-2015 | Исправлено: BuZzOFF89, 10:04 19-07-2015
    Открыть новую тему     Написать ответ в эту тему

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