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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
     
    Н-н-да... Весёлая либа - при компиляции валит ANSI makensis v2.46 с порчей стека и вдобавок не работает.
     
    Пробовал:

    Цитата:
    !include "ProcFunc.nsh"
    outfile test.exe
    var pid
    Function .chk
     StrCpy $R7 1
     Pop $R5
     Pop $pid
     StrCmp "G:\dev\far3\Far.exe" $R5 +1 +2
     StrCpy $R7 0
     Push $R7
    FunctionEnd
    ShowInstDetails show
    Section "main"
      ${EnumProcessPaths} .chk $R8
      ${CloseProcess} $pid $R6
      DetailPrint $pid
      DetailPrint $R5
      DetailPrint $R8
      DetailPrint $R6
    SectionEnd

    Дохлый номер - выдаёт мусор и ничего не завершает, а должна завершать процесс запущенный из указанного каталога. В морг.

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



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

    Цитата:
    при компиляции валит ANSI makensis v2.46

    У меня хедер ProcessFunc.nsh (последней доработки) работает как часы на всех версиях NSIS.
    А тот дремучий, что с PortableApps.com, - сплошные глюки...

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 10:35 21-07-2015
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
     
    Линком поделись а то я в его версиях запутался...

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    http://rghost.ru/private/77Ybg8wmd/7b6fc98dd2d4d183a30fb6d89810f2ea
    там же тест файл с командами

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 18:37 21-07-2015
    Victor_VG



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

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



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

    Цитата:
     !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  

     
    BuZzOFF89
    Проверил. Тестовая финишная страница работает.
    А можно его сделать на модерновый интерфейс MIU.nsh? У меня на нём установщик прописан.
    Ваш сценарий на нём выдаёт ошибку в строке ${NSD_CreateCheckbox} 120u 102u 195u 10u "CustomCheckBox"
     
    Добавлено:
    Victor_VG
    Я кстати заметил, что у моего ProcessFunc.nsh и с portableapps.com есть разница.

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 21:52 21-07-2015 | Исправлено: megane68, 21:59 21-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 | Отправлено: 22:36 21-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Понятно. В принципе, если несколько лет ждали, можно и ещё подождать.  
     
    Что- то у меня проблемы с добавлением своей финишной страницы. Переделываю установщик на MUI2.nsh, а оно теперь ругается на:
    LangString "MUI_BUTTONTEXT_FINISH" is not set in language table of language Russian
    LangString "MUI_BUTTONTEXT_FINISH" is not set in language table of language English
    И на финишной странице выдаёт такое: http://i70.fastpic.ru/big/2015/0721/2c/758d6ac0d3b4bb3b9abaeb9e88d54d2c.png

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



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Ну, с языками просто добавить дефайны добавить. Надо по докам этого плагина глянуть куда, похоже по этому образцу:
     
    VIProductVersion "${PRODUCT_VERSION}.0.0"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Nullsoft Scriptable Install System ${PRODUCT_VERSION}. Add-Ons Components Kit."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "Install Add-Ons components for Nullsoft Scriptable Install System ${PRODUCT_VERSION}, include plugins, special compiler build for support 8192 byte string light and examples. Windows Vista compatible."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "Nullsoft, Inc."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright © 1999-2009 Nullsoft, Inc., VictorVG by © VikSoft.Ru, 1996 - 2010. All Right Reserved."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Install Add-Ons Components for NSIS ${PRODUCT_VERSION} or higest. Compiled at ${__DATE__} on ${__TIME__}."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${IMin}.${IMaj}.${IBld}.${IRev}-${IVar}"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${PRODUCT_VERSION}"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "InternalName" "update"
    VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "Nullsoft, Inc."
    VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "setup"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "ProductName" "Nullsoft Scriptable Install System ${PRODUCT_VERSION} Add-Ons Components Kit."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "Comments" "Установка дополнений для Nullsoft Scriptable Install System ${PRODUCT_VERSION} включая дополнения, специальную сборку компилятора с поддержкой строк длинной до 8192 байт и примеры. Совместимо с Windows Vista."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "CompanyName" "Nullsoft, Inc."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "LegalCopyright" "Копирайт © 1999 - 2009 Nullsoft, Inc., VictorVG by © VikSoft.Ru, 1996 - 2010. Все права защищены."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "FileDescription" "Установка дополнительных компонент для NSIS ${PRODUCT_VERSION} и выше. Откомпилированно ${__DATE__} в ${__TIME__}."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "FileVersion" "${IMin}.${IMaj}.${IBld}.${IRev}-${IVar}"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "ProductVersion" "${PRODUCT_VERSION}"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "InternalName" "update"
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "LegalTrademarks" "Nullsoft, Inc."
    VIAddVersionKey /LANG=${LANG_RUSSIAN} "OriginalFilename" "setup"


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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Самое главное, когда вначале сценария прописано !insertmacro MUI_PAGE_FINISH, то получаются две финишные страницы, на второй оба чекбокса, а на первой только кнопка Готово.
    Если убираю вначала сценария !insertmacro MUI_PAGE_FINISH, то финишная страница как на скрине выше.
    Короче, надо курить доки.
     
    Добавлено:
    Всё получилось!!!  
    http://i69.fastpic.ru/big/2015/0722/f2/11a69611c08592f78113e879f62cc1f2.png

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 23:03 21-07-2015 | Исправлено: megane68, 01:14 22-07-2015
    megane68



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

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 01:15 22-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 | Отправлено: 01:20 22-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Мне вот интересно, почему на классическом интерфейсе получается изменить стандартную финишную страницу, а на интерфейсе Модерн - нет.
    У них настолько отличается функционал?

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



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

    Цитата:
    почему на классическом интерфейсе получается изменить стандартную финишную страницу, а на интерфейсе Модерн - нет.

    Наверное ты имел виду наоборот.
    В обычном MUI не применима CUSTOMFUNCTION_SHOW
    Но можно просто сделать перед PAGE_FINISH ( хотя PAGE_FINISH - вообще не нужна  в этом случае) свою финишную страничку с чекбоксами или ещё с чем то. Ессно внешне, эту страничку  можно сделать один в один, как и стандартную.  
     

    Код:
     
     outfile "test_FINISHPAGE.exe"
     !include MUI.nsh
     !include nsDialogs.nsh
     
     !insertmacro MUI_PAGE_INSTFILES
     Page custom CustomFinish FinishLeave
     ; !insertmacro MUI_PAGE_FINISH
     !insertmacro MUI_LANGUAGE "English"
     
     var Checkbox
     var Checkbox2
     var Checkbox3
     
     Function CustomFinish
     nsDialogs::Create 1018
     Pop $1
     ${NSD_CreateCheckbox} 50u 30u 100% 10u " чекбокс1"
     Pop $Checkbox
     
     ${NSD_CreateCheckbox} 50u 50u 100% 10u " чекбокс2"
     Pop $Checkbox2
     
     ${NSD_CreateCheckbox} 50u 70u 100% 10u " чекбокс3"
     Pop $Checkbox3
     
     nsDialogs::Show
     FunctionEnd
     
     Function FinishLeave
     ${NSD_GetState} $Checkbox $0
     ${If} $0 <> 0
     MessageBox mb_ok "чекбокс1 отмечен"
     ${EndIf}
     
     ${NSD_GetState} $Checkbox2 $0
     ${If} $0 <> 0
     MessageBox mb_ok "чекбокс2 отмечен"
     ${EndIf}
     
     ${NSD_GetState} $Checkbox3 $0
     ${If} $0 <> 0
     MessageBox mb_ok "чекбокс3 отмечен"
     ${EndIf}
     FunctionEnd
     
     Section
     SectionEnd
     
     

     
     
    Тут был разговор про определение системного диска. Ещё , как вариант :
     

    Код:
     
    OutFile GetSystemWindowsDirectory.exe
    Section
    System::Call 'kernel32::GetSystemWindowsDirectory(t .r0, i ${NSIS_MAX_STRLEN})'
    StrCpy $1 $0 3
    MessageBox MB_OK "Windows Directory: $0$\r$\nSystem Drive: $1"
    SectionEnd
     

    Всего записей: 4928 | Зарегистр. 21-04-2005 | Отправлено: 11:31 22-07-2015 | Исправлено: MKN, 12:07 22-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MKN
    Спасибо, пригодится.
    Другой вопрос. Можно убрать текст в стандартной странице компонентов, а вместо неё сделать чекбокс ярлыка на рабочем столе?
    А то он у меня как компонент сейчас, а надпись аж три раза дублируется - в заголовке и рядом и над компонентами.
    На скрине текст отмечен красным:
    http://i69.fastpic.ru/big/2015/0722/1d/820cb096b45b520a2077ccdfaad3a71d.png

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 18:23 22-07-2015 | Исправлено: megane68, 18:25 22-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 | Отправлено: 19:34 22-07-2015
    megane68



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Просто интересно как вариант. Сейчас четыре чекбокса забульбенил на финишной странице. Вроде как нормальное решение.
    http://i72.fastpic.ru/big/2015/0722/a0/68a6bdbfb4c3f6e28692664cda4ef0a0.png
    Через доп секцию не представляю как?
    Но сейчас главное понять как на двух языках, на инглише и русском, сделать надписи на чекбоксах и в секции Description на странице компонентов.

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



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Ладно, в ПМ, но просьба не раздавать мои исходники школярам - достанут "гениальными советами"...
     
    Добавлено:
    megane68
     
    В дескрипторах можно, но если делать две ветки кода с разными наборами страниц. Я с этим возится не стал ибо высока вероятность дров наломать - и так у меня свыше 2200 строк кода...

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:23 22-07-2015
    megane68



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

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



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    megane68
     
    Небольшая подсказка - зайдите на https://github.com/lordmulder/stdutils и возьмите stdutils-master (v1.0.6.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 | Отправлено: 05:37 23-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