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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Никогда не доверял таким рода утилиткам - лишний раз убедился!
    Делаю код записей реестра по старинке - вручную, геморно...но надежней и значения двордов в коде пишу в десятичном ввиде - ни разу не подводило

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 11:27 19-01-2011 | Исправлено: kot280379, 11:31 19-01-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    Так вот, в чём и причина - спасибо, что по мей просьбе уважаемый ADMIN_CRACK посмотрел что там творится:

    Цитата:
    Дело в том что значения заносятся в цикле по байтам и первый байт выглядит 0f и он естественно записывается как f , вот если бы в исходниках он сразу поместил 0fffffff как переменную а потом её внес в строку было бы другое дело.
    Тем более что это помещается в регистры но потом с какого то перепуга начинает заносится по байтам.

    Это называется "святых выноси". Когда скрипт не велик руками бить его быстро, а когда как у Far за 170 Кб? Тут руками быстро не напишешь, ноа что видать и расчёт автора - в массе строк его халтура проскочит. В данном случае имеет место грубейшая ошибка в алгоритме разбора двоичной строки - с какого перепугу он её начинает побайтно анализировать, и вдобавок заведомо не корректно?

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:39 19-01-2011 | Исправлено: Victor_VG, 19:42 19-01-2011
    mikutu

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сразу скажу что знание nsis у меня поверхностные.
    Есть инсталятор основаный на MUI, возникла необходимость уменьшить количество нажатий при установке оставив все возможности инсталятора (т.е. сей час если пользователь ни чего не меняет то делает минимум 5 кликов мышью в инсталяторе, хотелось бы это количество сократить до 2 (принятие лицензии и завершении инсталяции (хотя возможно даже от этого можно отказаться так как на последней странице только опция запускать или нет установленную программу после выхода из инсталятора))). Сей час используются страницы
    MUI_PAGE_WELCOME
    MUI_PAGE_LICENSE
    MUI_PAGE_COMPONENTS
    MUI_PAGE_DIRECTORY
    MUI_PAGE_INSTFILES
    MUI_PAGE_FINISH
    Первое что сделал отказался от страницы MUI_PAGE_WELCOME, следующим шагом вижу что нужно на странице MUI_PAGE_LICENSE добавить checkbox (нужен для того что бы пользователь мог выбрать режим установки по умолчанию или расширенный), т.е. если checkbox не отмечен то происходит переход на страницу MUI_PAGE_INSTFILES, а если отмечен то переходит на страницу MUI_PAGE_COMPONENTS (как в старом инсталяторе).
    Пробовал сделать на примере вот этого
    http://forums.winamp.com/showthread.php?threadid=264181
    но у меня ни чего не получилось .

    Всего записей: 23 | Зарегистр. 07-05-2006 | Отправлено: 10:07 15-02-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mikutu
     
    Код в студию, тогда можно будет глянуть что именно и как переделать. А так бесполезно. Общие советы только можно дать, а они на конкретном скрипте могут и не сработать.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 11:28 15-02-2011
    mikutu

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот примерный код (убрал лишнее оставил только необходимый минимум, необходимо для компиляции 2 файла в c:\ - test.exe и test.txt, а также плагины KillProcDLL, UAC, inetc)
    http://narod.ru/disk/5671036001/setup_test.nsi.html

    Всего записей: 23 | Зарегистр. 07-05-2006 | Отправлено: 12:55 15-02-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mikutu
     
    Я конечно не гуру, но из любопытства глянул скрипт.
    Ту задачу, которую ты поставил, может быть легко решена по средствам nsDialogs.
     
    1, Вроде бы простая задача, а скрипт раздут до уровня установки Врамеворка.  
    2, Если не нужны другие страницы, зачем их указывать?
    3, Плагин KillProcDLL не зарезервирован, место назначения его не указано.
    4, Такой путь желательно избегать - !insertmacro MUI_PAGE_LICENSE C:\test.txt  
    5, !define MUI_LANGDLL_REGISTRY_ROOT HKLM - если нет выбора языка зачем это
    5, ReadRegStr $INSTDIR HKLM "${REGKEY}" Path  - назначение этой строки мне не понятно.
    6, File /r c:\test.txt ключ /r - это наверно шутка для первого апреля, найти все файлы с именем test.txt на диске C.
     
     
     
    Добавлено:
    У меня такой вопрос к специалистам, кто использовал плагин Games.dll?
    Скрипт не может прочитать строку  

    Код:
    Games::registerGame "/mcicon:$INSTDIR\Snooker.png" "/mcrun:$INSTDIR\Snooker.lnk" "$INSTDIR\GsPoolSnooker.exe"

    у меня подозрение, что исполняемый файл сильно пережат и имеет всего две иконки 16x16 и 32x16

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 22:42 15-02-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mikutu
    Делается элементарно. Есть пример скрипта - прыжки по страничкам:
    http://nsis.sourceforge.net/Go_to_a_NSIS_page
    Но почему то, со стандартной страничкой лицензии - функция не работает.
    Пришлось подключить nsDialogs и нарисовать свою страничку лицензии, смотрим здесь:
    http://nsis.sourceforge.net/LoadRTF
    Подключаем хедер LoadRTF.nsh к основному скрипту.
    Эта библиотека погружает файлы rtf, если текст лицензии - txt, копируем содержание txt файла в стандартный WordPad и сохраняем как файл rtf и к тому же текст лицензии можно раскрасить.
    Пример
     

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 23:26 15-02-2011 | Исправлено: kot280379, 23:48 15-02-2011
    mikutu

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sawerx
    Спасибо за замечания, убрал все о чем вы написали. /r Нужно в оригинальном скрипте (там просто берутся все файлы из определенной папки), а здесь я ее просто забыл убрать.

    Цитата:
    KillProcDLL не зарезервирован, место назначения его не указано

    добавил резервирование для всех плагинов (кстати кстати из-за того что этого не было раньше иногда проскакивали небольшие баги), а вот про место назначения не понял он же ищет в оперативке процесс.
     
    kot280379
    Спасибо за скрипт, сделал все работает! Только появился небольшой баг на последней странице (MUI_PAGE_FINISH) при снятии галочки в checkbox инсталятор закрывается.

    Всего записей: 23 | Зарегистр. 07-05-2006 | Отправлено: 07:29 16-02-2011 | Исправлено: mikutu, 07:30 16-02-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mikutu
    делайте через функцию, так все нормально работает:

    Код:
    !define MUI_FINISHPAGE_RUN
    !define MUI_FINISHPAGE_RUN_FUNCTION FUNCTIONFINISH  
     
     
    Function FUNCTIONFINISH
     
     Exec "$INSTDIR\App.exe"
     
    FunctionEnd

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 09:59 16-02-2011
    mikutu

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
    Я делал и так через функцию, баг был связан с тем что я вчера пытался вставить checkbox через ioSpecial.ini и потом (после того как у меня из этого ни чего не получилось) забыл убрать оттуда его описание.

    Всего записей: 23 | Зарегистр. 07-05-2006 | Отправлено: 12:45 16-02-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mikutu
    Я использую только MUI2, и никаких конфигураций с ini файлами, все делается через  API - функции

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 14:15 16-02-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я дно не могу понять, а зачем тогда вообще использовать  
    !insertmacro MUI_PAGE_FINISH  
    она же использует картинку и лишнюю память!  
    не проще вставить это:

    Код:
     
    Function .onInstSuccess  # финальное сообщение установки!
      HideWindow # скрывает главное окно!
      MessageBox MB_YESNO|MB_ICONQUESTION "Вы хотите запустить программу" IDNO +2
        Exec "$INSTDIR\App.exe" # запуск файла после установки!
    FunctionEnd
     

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 20:24 16-02-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня такой вопрос к специалистам, кто пробовал использовать InstallSpiderUI ?
    или у кого есть языковые файлы для него!  
    Для простоты понимания перевёл страничку Readme.htm

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 13:03 19-02-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sawerx
    Обычные правки хедеров MUI  и ничего особого.. все на стандартных командах NSIS
    И также правка ресурсов MUI ${NSISDIR}\Contrib\Uils\modern.exe и т.д
    Что я сам практикую часто - переделываю под себя.. любым редактором ресурсов
    А языки лежат ${NSISDIR}\NSIS\Contrib\Language files\*.nlf(nsh), коих править под себя - проще простого, любым текстовым редактором.
    Можно также через SendMessage в проекте nsi, "подглядев" индетификаторы контролов любым редактором ресурсов.

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 16:47 19-02-2011 | Исправлено: kot280379, 17:08 19-02-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    Я только переделывал языки, но не трогал modern.exe
    А ты не можешь это протестировать в отдельной папке.
     
    Добавлено:
    kot280379
     
    Чем вы генерируете для nsDialogs - dialog units, - NSIS Form Designer умеет это делать?  
     
    Каждый из размеров, которые принимает макрос, это координаты, ширина и высота могут быть заданы в трех единицах измерения: - пиксели, единицы измерения диалога (dialog units) или проценты от пространства окна страницы. Они могут иметь и отрицательные значения, что указывает, что отсчёт величины будет в обратную сторону, то есть снизу или справа. Чтобы использовать единицы диалога (dialog units), измерение должно быть суффиксное с литерой u. Чтобы использовать процент, измерение должно быть суффиксное со знаком процента - %. Любой другой суффикс, или без суффикса, означает пикселы.
     
    Единицы units диалога позволяют создавать диалоги, которые хорошо масштабируются, когда используются другие шрифты или DPI. Его размер в пикселах определён в среде выполнения, основан на шрифте и DPI. Например, стандартные страницы с классическим интерфейсом NSIS = 266 единиц в ширину диалога и 130 единиц в высоту диалога. Страницы в Modern UI = 300 единиц в ширину диалогов и 140 единиц в высоту диалога. В других разрешениях, используя другие шрифты или параметры настройки DPI, у диалогов всегда будет тот же самый размер в единицах диалога, но другой размер в пикселах.

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 15:45 20-02-2011
    kot280379



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

    Цитата:
    Чем вы генерируете для nsDialogs - dialog units, - NSIS Form Designer умеет это делать?  

    Руками , размеры контролов для простоты и точности - по своему опыту, лучше всего  в dialog units, особенно полезны, так как отлично масштабируют размеры элементов управления под разные DPI и в процентах (для "массивных" контролов).  
    Для меня не составляет труда нарисовать любую страничку - добился только путем тренировки и немного опыта в этих делах. А сгенерить контролы для nsDialogs - с трудом представляю как это сделать, слишком специфично (используюся, то функции API для отрисовки), в отличии от ini файлов, где installoptions читает параметры ini и отрисовывает странички.

    Цитата:
    А ты не можешь это протестировать в отдельной папке

    смысл че та не совсем ясен...

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 17:02 20-02-2011 | Исправлено: kot280379, 17:09 20-02-2011
    sawerx



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

    Цитата:
    смысл че та не совсем ясен...  

     
    Я несколько раз пробовал править языковые файлы, но всё равно выбивало ошибку на языках. ResourceHacker-ом не правил, так как точно не уверен, что именно править, и я думаю, что автор этого тоже не делал, иначе бы он его выложил бы.  
    Я просто подумал, что Гуру быстрее разберётся, тем более что в нём есть несколько интересных решений.
     
    Я заметил, что в nsDialogs расстояние от края формы несколько меньше, чем для INI, по этому спросил.  
    В рукопашную, методом тыка не очень то удобно.

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 23:16 20-02-2011
    kot280379



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

    Цитата:
    Я заметил, что в nsDialogs расстояние от края формы несколько меньше, чем для INI, по этому спросил
     
    Открывайте редактором ресурсов диалог 105 и правьте:  
    ID 1044 - применяется для старта и финиша (но ничто не мешает использовать на свои стр.)
    ID 1018 - стандарт де-факто

    Цитата:
    В рукопашную, методом тыка не очень то удобно.

    На данный момент альтернативы
     

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 00:36 21-02-2011 | Исправлено: kot280379, 00:36 21-02-2011
    SvetonosnyAngel

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

    Цитата:
    Кто подскажет как сделать чтобы установка NSIS подхватывала файл из той же папки где она сама?

     
    Тоже интересует такой вопрос. И что бы еще этот файл копировался в профиль программы.
    Подскажите.

    Всего записей: 313 | Зарегистр. 08-12-2008 | Отправлено: 13:19 05-03-2011
    kot280379



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

    Цитата:
    этот файл копировался в профиль программы

    CopyFiles /silent "$EXEDIR\file"  "Мой_аддцкий_путь\file"
    Файл копируется из папки  установки (запуска инсталлятора) в указанный путь, причем указанный путь должен быть реальным (существовать) иначе не скопируется...
     
    ИЛИ

    Цитата:
    Кто подскажет как сделать чтобы установка NSIS подхватывала файл из той же папки где она сама?

    File "/oname=Мой_аддцкий_путь\файл"  "Абсолютный_путь\file"
    И вообще в справке почитайте по индексу File
     

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 13:36 05-03-2011 | Исправлено: kot280379, 15:11 05-03-2011
    Открыть новую тему     Написать ответ в эту тему

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