Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2.

Ответить
Настройки темы
.: NSIS - все вопросы :. часть 2.

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: kotkovets
Дата: 07-06-2020
Описание: NSIS 3.05


Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения.


Описание:
читать дальше »
NSIS (Nullsoft Scriptable Install System) - профессиональная система для создания инсталляторов в среде Windows с октрытым исходным кодом. При своем малом размере система очень гибкая, и при с широкими возможностями. Генерируемый ею инсталлятор также имеет очень маленький размер и идеально подходит для распространения продукта через Интернет.


Текущая версия: NSIS 3.05 от 15 декабря 2019 года
Скачать | Архив сборок версии

Первая часть этой темы
Скачать первую часть этой темы одним архивом

ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов:
Справочник по NSIS - создан силами нашего сообщества.
Руководство пользователя. Перевод – Поляков А.В, зеркало

Документация

Утилиты разработчика
Расширение функциональности

Примеры скриптов на нашем форуме
Скрипт NSIS для перепаковки AIMP2+Сборки
Тема для Notepad++(пример парсинга XML)

Достоинства
читать дальше »


◦ Очень маленький размер установочного блока (около 34 Кбайт)
◦ zlib, bzip2 и LZMA-сжатие
◦ Гибкая система скриптов (спецально разработанная для инсталляторов)
◦ Поддержка многоязычности, точнее 53 языка, есть возможность ввода нового языка
◦ Поддержка плагинов
◦ Скрипт Препроцессор
◦ Создание Web-инсталляторов


Ещё немного полезной информации:
читать дальше »

▫ История создания установщика

NSIS создан как альтернатива InstallShield, предназначенного для коммерческих продуктов.

NSIS был создан для распространения Winamp. Он базируется на предыдущем продукте Nullsoft — PiMP (plugin Mini Packager), иначе известным как SuperPiMP. После версии 2.0a0, проект был перемещён на SourceForge.net, где к работе над ним присоединились и сторонние разработчики. NSIS 2.0 был выпущен в свет 2 года спустя.

NSIS версии 1 был очень похож на классический Windows Installer, но он был более управлемым с помощью скриптов и поддерживал другие форматы сжатия. NSIS версии 2 поддерживает новый графический интерфейс пользователя, LZMA-сжатие, многоязычность и имеет хорошую систему плагинов.

Версия 2.01 была первой версией, поддерживающей компиляцию на любой из POSIX-платформ. Это позволило создавать Windows-инсталляторы на GNU/Linux и FreeBSD без использования эмулятора Wine. На данный момент поддерживается компиляция только для Windows.

▫ Описание

Компилятор NSIS — программа makensis — компилирует скрипты в исполняемый код. Каждая строчка скрипта содержит одну команду. Пример:
Код: Выделить весь код
 # Пример скрипта
 Name "Example1"
 OutFile "example1.exe"
 InstallDir "$PROGRAMFILES\Example1"
 Page Directory
 Page InstFiles
 Section
   SetOutPath $INSTDIR
   File ..\makensis.exe
 SectionEnd

Modern User Interface

В версии 2.0 был введён новый графический интерфейс пользователя, названный Modern UI (MUI). MUI очень похож на интерфейс мастеров, он поддерживает splash screen, выбора языка, выбор компонентов для установки и более широкие возможности настройки по сравнению со своим предшественником. Пример:
Код: Выделить весь код
 # Пример скрипта с Modern UI
 !include MUI.nsh
 Name "Example 2"
 OutFile Example2.exe
 !insertmacro MUI_PAGE_WELCOME
 !insertmacro MUI_PAGE_LICENSE "license.rtf"
 !insertmacro MUI_PAGE_DIRECTORY
 !insertmacro MUI_PAGE_COMPONENTS
 !insertmacro MUI_PAGE_INSTFILES
 !insertmacro MUI_PAGE_FINISH
 !insertmacro MUI_LANGUAGE "English"
 !insertmacro MUI_LANGUAGE "German"
 !insertmacro MUI_LANGUAGE "French"
 Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
 SectionEnd
NSIS может быть расширен при помощи плагинов, которые могут быть написаны на C++, Си, и Delphi. Плагины могут быть использованы для улучшения функциональности и интерфейса инсталлятора. Плагины могут быть вызваны в любой части кода NSIS скрипта.

С пакетом NSIS поставляются несколько плагинов, позволяющих добавлять новые страницы, заменять фоновые изображения, скачивать файлы из Интернета, выполнять математические вычисления, обновлять файлы и многое другое.

▫ Программы, использующие NSIS


◦ Антивирус Касперского
◦ Qip
◦ 3DNA Desktop
◦ 7-Zip
◦ ATI Display Driver
◦ CDex
◦ Dev-C++
◦ DivX
◦ eMule FileZilla
◦ Google Picasa
◦ Google Talk
◦ Intel C (компилятор)
◦ IrfanView
◦ LightAllow
◦ LyX
◦ Miranda IM Mozilla Firefox 2.0
◦ NASA World Wind
◦ Notepad++
◦ OpenOffice.org для Windows
◦ Pidgin
◦ VLC Player
◦ Winamp

▫ Чем я могу распаковать инсталлятор, созданный в NSIS?

В настоящее время инсталляторы NSIS не могут быть полностью декомпилированы. Сам инсталлятор не содержит в себе никаких функций для того, чтобы извлечь сценарий и/или файлы без инсталляции. Это - выбор разработчика, доступны ли исходный текст и/или файлы для инсталлятора для публики или нет. Есть, однако, внешние инструментальные средства, которые позволяют это сделать. 7-zip поддерживает частичную распаковку NSIS инсталляторов с алгоритмом сжатия lzma или bzip. Так же существует мульти-архивный плагин для TotalCommander.
Небольшая заметка для разработчиков: используйте DCryptDll, если хотите скрыть некоторые файлы в вашей инсталляции.


-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:02, 09-12-2012

 
MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 557

Профиль | Отправить PM | Цитировать


Определение у пользователя прав администратора :

Код: Выделить весь код
OutFile "Admin_privileges.exe"
Section 
  System::Call "kernel32::GetModuleHandle(t 'shell32.dll') i .s"
  System::Call "kernel32::GetProcAddress(i s, i 680) i .r0"
  System::Call "::$0() i .r0"
  IntCmp $0 1 +3
  MessageBox MB_OK "Требуются права администратора для запуска этой установки"
  Abort 
SectionEnd

Последний раз редактировалось MKN, 28-03-2014 в 13:46.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:38, 28-03-2014 | #1111



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для alexfinik

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Оффтоп, но http://nsis.sourceforge.net/ не пашет, да? У меня на всех устройствах белый экран. При том, что домен 2го уровня работает.

-------
Спасибо за помощь!


Отправлено: 17:57, 03-04-2014 | #1112


Пользователь


Сообщения: 108
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Цитата alexfinik:
...не пашет »
А что вы там хотели открыть? Ссылка на страничку загрузки NSIS выглядит немного иначе.

Отправлено: 10:26, 04-04-2014 | #1113


Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата alexfinik:
Оффтоп, но http://nsis.sourceforge.net/ не пашет, да? »
у меня вчера не работала ссылка, сейчас нормально

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Отправлено: 13:46, 04-04-2014 | #1114


Аватара для alexfinik

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Друзья, а какие-либо массивы работают в не unicode версии? Смотрю, что стандартные версии известных скриптов выдают ошибку. Можно, конечно, написать разработчику, только, сдается, через год он мне и ответит.

Либо вопрос, какие zip плагины работают в unicode версии? zipdll у меня не заработал там в этот раз, когда я начал ковыряться в своём коде

точнее это не работает в Unicode
Код: Выделить весь код
ZipDLL::extractall "$6" "$INSTDIR\distr"
Про массив, единственное, что не выдает ошибок при компиляции у меня - это http://myweb.tiscali.co.uk/imker/downloads/Array.zip

версия 2.46 Ansi

-------
Спасибо за помощь!


Отправлено: 18:15, 04-04-2014 | #1115


Аватара для alexfinik

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Отправить PM | Цитировать


Упс-упс-упс. Простите, установил 3.0, оказывается... Совсем сырая, видать. С установкой 2.46 проблемы исчезли.

-------
Спасибо за помощь!


Отправлено: 19:20, 04-04-2014 | #1116


Пользователь


Сообщения: 126
Благодарности: 7

Профиль | Отправить PM | Цитировать


Привет народ...

Цитата Kopejkin:
Подскажите, как в инсталляторе отобразить еще одну страничку, не обязательно после странички с лицензионным сообщением, в которой текст из rtf/txt файла будет отображен на том языке, который был выбран в начале установки, т.е. подобно странице лицензии? Создавать кастомную страницу или можно обойтись штатными средствами? »
Уже ранее ответили, но возможно кому пригодится и такой вариант решения:
http://forum.ru-board.com/topic.cgi?...5&start=900#19

Собственно мои вопросы, шарился по справке но что-то не нашел, или не там искал..
1. Как изменить дату создания файла (при компилировании этого файла после отработки программы), на нужную, т.е. автоматически назначаемую системную дату, изменить на требуемую.. Желательно с примерчиком.

2. Пока сижу на NSIS ANSI/UTF 2.46.5(с приблудами от Victor_VG), имеет ли смысл перебираться на тройку последней версии?!

Были ли решены где-либо извечные проблемы:
- исчезновение иконки и панели свойств файла по ПКМ(при достижении файлом размера свыше ~350 Мб);
- ограничение размерности файла инсталлятора на выходе в 2 ГБ.
?!

Спасибо.


Цитата alexfinik:
.. установил 3.0, оказывается... Совсем сырая, видать. С установкой 2.46 проблемы исчезли. »
Сижу пока на 2.46.5, подумал было перебираться выше, но что-то уже мало радует сия софтинка...
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:02, 05-04-2014 | #1117


Аватара для Flix

Пользователь


Сообщения: 87
Благодарности: 49

Профиль | Отправить PM | Цитировать


Цитата MaGoth:
Как изменить дату создания файла »
Есть консольная утилита timestomp, которая позволяет изменять время и дату создания файла (см. WIKI).

Для автоматизации изменения даты и времени у созданного файла инсталлятора после компиляции, необходимо добавить в сценарий следующую команду:

Код: Выделить весь код
// Изменение временных атрибутов файла инсталляции
// ${NSISDIR}\Bin\timestomp.exe - путь размещения и имя утилиты
// "%1" - вместо этой переменной будет поставлено имя файла инсталлятора
// -z - опция утилиты timestomp.exe (см. справку)
// "Saturday 10/08/2005 2:02:02 PM" - желаемая дата и время

!finalize '"${NSISDIR}\Bin\timestomp.exe" "%1" -z "Saturday 10/08/2005 2:02:02 PM"'
Изменения в версии 3.0 на сегодня по сравнению с декабрьским релизом (англ. язык):
читать дальше »
r6457
Store datablock optimizer statistics as UINT64 in case the same large file is added many times
---------------------
r6456
!system decodes child output as OEMCP if GetConsoleOutputCP() == GetOEMCP(), this should help bug #1092 (or fix it completely?)
---------------------
r6455
Adding the same file twice can push cur_datablock over the 2GB limit because datablock_optimize() happens too late. Try to find a dupe early.
---------------------
r6454
Clarify the difference between the LANGFILE and LANGFILE_EXT macros.
---------------------
r6453
CreateShortCut > CreateShortcut
---------------------
r6452
Added CreateShortcut /NoWorkingDir optional parameter
---------------------
r6451
Fix bug #1088 and try even harder by using substring if possible
---------------------
r6450
Don't store wide and narrow versions of the same error string
---------------------
r6449
Print error when ExeHeadStringList::find is unable to convert to narrow string
---------------------
r6448
lstrcpy is overkill there
---------------------
r6447
Make sure SYSSTRUCT pointer members are correctly aligned for x64
---------------------
r6446
Don't list /amd64-unicode in !addplugindir help (makensis win32)
---------------------
r6445
Added P<, P<=, P=, P<>, P>= and P> LogicLib ptrdiff_t tests
---------------------
r6444
Basic AMD64 System::Call support
---------------------
r6443
Fixed some warnings
---------------------
r6442
Prevent MSVC 14.00.40310 from generating a recursive call to memset
---------------------
r6441
Calculate ctlcolors64 offset correctly
---------------------
r6440
DistributeInclude for plugins even when not building ANSI plugins
---------------------
r6439
Basic Win64 support (MSVC)
---------------------
r6438
Added Int32/64/Ptr helper macros to Util.nsh
---------------------
r6437
Fix GCC zip2exe/zlib z_crc_t type mismatch warning
---------------------
r6436
more conversion warning fixes
---------------------
r6435
fix gcc warning
---------------------
r6434
avoid warnings about stdcall being ignored
---------------------
r6433
and fix vc build too now... meh
---------------------
r6432
fixed build with mingw on ubuntu 64-bit
---------------------
r6431
Incorrect NSIS version in welcome text and MUI is not new
---------------------
r6430
Fixed winchar tests
---------------------
r6429
arg name is s not str
---------------------
r6428
mstoolkit.py now supports MSVC_USE_SCRIPT=None to import VC and SDK paths from environment variables
---------------------
r6427
POSIX fixes for native and crossplatform utils
---------------------
r6426
those are not available on mingw for whatever reason...
---------------------

Судя по переписке разработчиков, в версии 3.0 присутствуют определенные проблемы, которые еще не решены. Они рекомендуют для ответственных проектов пользоваться версией 2.46.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:40, 05-04-2014 | #1118


Пользователь


Сообщения: 126
Благодарности: 7

Профиль | Отправить PM | Цитировать


Цитата Flix:
Есть консольная утилита timestomp, которая позволяет изменять время и дату создания файла (см. WIKI). »
Сейчас заценим софтинку, кстати она, тихий режим держит? Не хотелось бы чтобы при инсталлера ее окошко вылазило. Пдф-ку смотрел, но что-то так и не нашел упоминаний об этом.

Спасибо.

Отправлено: 20:38, 05-04-2014 | #1119


Пользователь


Сообщения: 126
Благодарности: 7

Профиль | Отправить PM | Цитировать


Flix,

Об читался весь, об смотрелся и на тестился, не хотит эта сволочь фурычить, мысли какие есть ?!
запускал так:

Код: Выделить весь код
...
  SetOutPath "$TEMP\${MOD_NAME_BASE} Installation"
  nsExec::Exec '"$TEMP\${MOD_NAME_BASE} Installation\timestomp.exe" "$INSTDIR\data\fonts.VDF" -z "Tuesday 13/02/2001 17:46:44 PM"'
  Pop $0
...
Пробовал прописывать тонну разных вариантов кавычек, как и запуск проги из того-же каталога где создается файл, также с разными кавычками и параметрами запуска... Ее окно видно что запускается и даже что-то там пишет.. но дата как стояла текущая системная так и стоит...

Отправлено: 22:25, 05-04-2014 | #1120



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 dimadr Наборы обновлений для Windows XP/2003/Windows 7 267 14-02-2020 08:25
[архив].: NSIS - все вопросы :. kotkovets Автоматическая установка приложений 3387 09-12-2012 11:56
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 jameszero Наборы обновлений для Windows XP/2003/Windows 7 1491 22-07-2011 22:42
Выбор|модернизация процессора .:[все вопросы]:. Часть I Myxa Выбор отдельных компонентов компьютера и конфигурации в целом 1845 01-01-2011 19:18
Вопросы по создателю инсталляций NSIS MaxDELETE Программное обеспечение Windows 14 04-07-2007 10:01




 
Переход