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

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

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 18:33 16-06-2013 | Исправлено: Victor_VG, 18:34 16-06-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, форумчане.  
     
    Есть задача формирования конфигурационного файла CONF.INI с клавиатуры. Сделал пример, но он почему-то запихивает туда какое-то число. Причём каждый раз разное... Мануалы курил - не вставило...
     
    Код некого nsi файла ниже:
     

    Код:
     
    !include nsDialogs.nsh
    !include LogicLib.nsh
     
    Name nsDialogs
    OutFile nsDialogs.exe
     
    XPStyle on
     
    Var Dialog
    Var Label1
    Var Label2
    Var Label3
    Var Text
     
    Page custom nsDialogsPage nsDialogsPageLeave
    Page instfiles
     
    Function nsDialogsPage
     
        nsDialogs::Create 1018
        Pop $Dialog
     
        ${If} $Dialog == error
            Abort
        ${EndIf}
     
        ${NSD_CreateLabel} 0 0 100% 12u "Введите параметры ресторана ниже"
        Pop $Label1
        ${NSD_CreateLabel} 0 13u 100% 12u "Имя клиента: "
        Pop $Label2
        
     
        ${NSD_CreateText} 0 25u 100% 13u ""
        Pop $Label3
        ${NSD_OnChange} $Text nsDialogsPageTextChange
     
        nsDialogs::Show
     
    FunctionEnd
     
    Function nsDialogsPageLeave
     
        FileOpen $R0 "$DESKTOP\CONF.INI" w  
        FileWrite $R0 "$\r$\n" ; we write a new line
        FileWrite $R0 "Client = $Label3"  ;почему-то выходит фигня - число какое-то
       FileWrite $R0 "$0"
        FileClose $R0 ; and close the file
    FunctionEnd
     
    Function nsDialogsPageTextChange
     
    FunctionEnd  
     
    Section
    SectionEnd

     
     
    Редко пишу на форумы - обычно лень это делать - легче найти... но что-то даже не знаю как запрос сформировать... Спасибо всем ответившим!

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 16:09 09-07-2013 | Исправлено: afinik, 16:43 09-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    afinik
     
    Этот код и должен мусор в INI писать. Вам чуть иной приём нужен:
     
    С помощью плагина NsJSON создать скрипт ввода с клавиатуры и его разбора выводящий результат в переменную;
    Затем уже её значение писать в INI с помощью WriteIniStr.
     
    Что-типа такого решения.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:31 09-07-2013 | Исправлено: Victor_VG, 17:37 09-07-2013
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    afinik
    http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html#mref-gettext

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 16:44 09-07-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
     
    Ох спасибо! Я пока писал, придумал как запрос сформировать и что-то нашел на конкурирующем форуме...
    Там решается, как я понял своим незнающим мозгом, с помощью gettext
     
    Ваш скрипт не нашел что-то...
     
    http://forum.oszone.net/post-1484531-668.html
     
    820815
    Ага, именно это и нашел... Спасибище за помощь!!!

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 16:52 09-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    afinik
     
    Плагин NsJSON есть в репозитарии плагинов NSIS, а вся документация и примеры у него в архиве лежат. Просто из двух вариантов решения я об этом первом вспомнил. Я думал что вы знаете адрес репозитария плагинов NSIS и поглядите его там. Если был не прав извините...

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:59 09-07-2013 | Исправлено: Victor_VG, 16:59 09-07-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Мерси. Да просто в букве ошиблись одной, вот и не понял! Спасибо! Думаю, что теперь выйдет!

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 17:27 09-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    afinik
     
    Взаимно. Опечатку поправил. Спасибо!

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 17:38 09-07-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ух ты! Всего лишь добавил  

    Код:
    $NSD_GetText} $Text2 $Text2
     
     
    после  

    Код:
     
    Function nsDialogsPageLeave
     

    И заработало. Может кому поможет готовое решение записи в файл с экрана. Пока некрасивое и недоработанное, но работает! Спасибо еще раз всем!!

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 17:40 09-07-2013 | Исправлено: afinik, 17:42 09-07-2013
    destiny_child



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть NSIS 2.46 и куча пакетов (ЕХЕ файлов), созданных им.
    можно уже готовый exe пакет развернуть в папку так, как если бы я реально запустил сам установщик - выбрал некие опции, со всем согласился и прошел все шаги установки?
    Причем с одним нюансом - процесс разворачивания в отличие от реальных шагов должен только файлы затронуть - ну, т.е. создать их в требуемых местах - скопировать, создать подкаталоги, если требуется.
    А любые другие вещи, прописанные в установщике (к примеру, правка реестра) чтоб просто игнорировались?

    Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 21:09 21-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    destiny_child
     
    Распаковать можно 7-Zip, но не более. Сам исходный скрипт восстановить не возможно.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:54 21-07-2013
    destiny_child



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ммм. перефразирую - т.е. получить на винте в указанном месте полное дерево файлов и папок, вшитое в установщик, я смогу тока выполнив реальную установку в указанное место - через запуск экзешника этого установщика? И разумеется с выполнением всех скриптов, вшитых в этот установщик? И без вариантов?
    Т.е. нет никакого сценария виртуальной установки, имеющей своей целью только разворачивание всех файлов на винт - нет?

    Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 22:50 21-07-2013 | Исправлено: destiny_child, 22:53 21-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    destiny_child
     
    Почему? Распаковка даст часть скрипта - ту, что подставил компилятор, но дерево каталогов уже будет в инсталляторе. Дальше нужно только думать....

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 23:27 21-07-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, я вот прочитал пример из справки рускоязычной, а далее англоязычной. Пример про поиск файла... Я не врубяюсь в одну строку... именно в     "StrCpy $R0 $R9" - откуда взялась переменная $R9 -  у нее же нет значения... Там опечатка? Или чего именно я не понимаю? Строка говорит о том, что $R0 равно значению $R9 после этой команды.
     

    Код:
    Section
        ${Locate} "C:\ftp" "/L=F /M=RPC DCOM.rar /S=1K" "Example1"
        ; Поиск 'RPC DCOM.rar' файла в папке 'C:\ftp' с размером 1 Kb или больше
     
        IfErrors 0 +2
        MessageBox MB_OK "Ошибка" IDOK +2
        MessageBox MB_OK "$$R0=$R0"
    SectionEnd
     
    Function Example1
        StrCpy $R0 $R9
        ; $R0="C:\ftp\files\RPC DCOM.rar"
     
        MessageBox MB_YESNO '$R0$\n$\nИскать дальше?' IDYES +2
        StrCpy $0 StopLocate
     
        Push $0
    FunctionEnd

     
     
    Спасибо

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 13:39 24-07-2013
    820815



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    afinik
    http://nsis.sourceforge.net/Locate

    Всего записей: 645 | Зарегистр. 18-12-2006 | Отправлено: 14:01 24-07-2013
    afinik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    820815 Это к чему? Я знаю, что этот код оттуда. но зачем нужно $R9 не пойму.

    Всего записей: 16 | Зарегистр. 21-01-2010 | Отправлено: 16:08 24-07-2013
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    afinik
     
    $R0 - $R9, $r0 - $r9 , $0 - $19 это регистры и их определять не требуется. Регистры r0 - r9 === R0 - R9 === $10 - $19, регистры $0 -$9 отображаются сами на себя.
     
    Начальное значение регистра и любых пользовательских переменных при старте программы не определено, ожидается "нуль", но во избежание проблем настоятельно рекомендую до первого их использования либо записать в них нуль, либо иное значение необходимое программе или после будете искать причины не понятных ошибок.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:46 24-07-2013
    MKN



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

    Цитата:
    зачем нужно $R9 не пойму

    Это регистр, в данном случае, принадлежащий и используемый функцией Locate :

    Цитата:
    Function "Function"
        ; $R9    "путь\имя"


    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 17:53 24-07-2013 | Исправлено: MKN, 17:57 24-07-2013
    Victor_VG



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

    Цитата:
    Это регистр, в данном случае, принадлежащий и используемый функцией Locate :  

    Это не ко мне, а к afinik - он не знал что $Rx обозначает регистры.


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 24-07-2013
    MKN



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Пардон, промазал...

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 21:06 24-07-2013
    Открыть новую тему     Написать ответ в эту тему

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