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

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

Закрытая тема
Настройки темы
[архив].: NSIS - все вопросы :.

Аватара для kotkovets

Ветеран


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


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

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


Изменения
Автор: volk1234
Дата: 09-12-2012
Описание: перевод темы в архив.
Тема закрыта!
Лимит страниц.
Продолжение тут:
.: NSIS - все вопросы :. часть 2.
Старая шапка:
читать дальше »

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

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


Текущая версия: 2.46 от 6 декабря 2009 года
Скачать | Архив сборок версии 2 | Архив сборок версии 1

ВНИМАНИЕ! Созданный в NSIS инсталлятор является ANSI-приложением. Есть возможность использовать UNICODE-сборку системы, но при этом ваши дистрибутивы не будут работать в ANSI-системах, таких, как Windows 9x. Для загрузки UNICODE-сборки системы посетите сайт: http://www.scratchpaper.com/

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

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

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

Плагины и полезности к NSIS: http://nsis.sourceforge.net/Category:Plugins

Интерфейс Venis GUI: http://www.spaceblue.com/products/venis
Интерфейс ExperienceUI GUI http://experienceui.xx0r.info/oldeng...erienceui/home
Пример:


Интерфейс SkinCrafter Plugin - http://www.skincrafter.com/
Пример:

Инструкция по использованию от K.A.V.

Примеры скриптов на нашем форуме
Скрипт 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, если хотите скрыть некоторые файлы в вашей инсталляции.


===========
тема прикрепляется, шапка будет дорабатыватся... Volk1234, hb860

Отправлено: 23:35, 17-06-2006

 
MKN MKN вне форума

Ветеран


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

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


Набрёл случайно на вопрос, суть которого такова - "Как сделать так, чтобы кликнув на хелп-кнопочке (обозначенной знаком вопроса), рядом с каким либо элементом или надписью на странице - появлялось окно с сопроводительным текстом и, если надо, элементами управления ? Есть ли для этого какой либо плагин ?"
Оказывается есть такой (но его почему то нет в списке http://nsis.sourceforge.net/Category:Plugins)
Называется плагин nsWindows и живёт здесь :
http://forums.winamp.com/showthread....ight=nswindows
Только нагорожено в нём изрядно, а примеры мутные... Ежели бы этот плагин кто из специалистов "причесал" и упростил для поставленной задачи, то наверное была бы польза...

Отправлено: 17:31, 11-05-2012 | #2691



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

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


Аватара для kotkovets

Ветеран


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

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


Цитата MKN:
Только нагорожено в нём изрядно, а примеры мутные... »
этот плаг модифицированный nsDialogs - достойное и верное продолжение nsWindows.
но неинтересно ковыряться абсолютно!

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


Отправлено: 19:46, 11-05-2012 | #2692


Аватара для wolkow70

Ветеран


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

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


kotkovets, может посоветуете как справиться с задачкой:

!define MUI_STARTMENUPAGE_DEFAULTFOLDER "MyApp"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT ${PRODUCT_UNINST_ROOT_KEY}
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Icon Group"

На x86 все нормально. На системе X64 запись деинсталляции как и нужно создается в 64-битном реестре (через SetRegView 64), а значение "Icon Group" прописыается в 32-битный реестр. И как тут лучше сделать, учитывая, что путь к параметру задается через !define ?

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 14:33, 12-05-2012 | #2693


Аватара для kotkovets

Ветеран


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

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


wolkow70, обычной записью в реестре и чтением значение параметра деинсталятором.

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


Отправлено: 15:15, 12-05-2012 | #2694


Аватара для wolkow70

Ветеран


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

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


Цитата kotkovets:
wolkow70, обычной записью в реестре и чтением значение параметра деинсталятором. »
Тогда мне непонятно, как это будет выглядеть в контексте работы макроса

!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder

!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"

И в деинсталляторе:

!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder

Можно ли переназначать

!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

в зависимости от разрядности системы, может в Function .onInit как то ?

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 15:48, 12-05-2012 | #2695


Аватара для kotkovets

Ветеран


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

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


Цитата wolkow70:
Можно ли переназначать
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
в зависимости от разрядности системы, может в Function .onInit как то ? »
константы нет - это время компиляции. Для этого есть переменные - в любом месте кода.

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


Отправлено: 18:49, 12-05-2012 | #2696


Аватара для wolkow70

Ветеран


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

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


Цитата kotkovets:
Для этого есть переменные - в любом месте кода. »
Не получается:

Код: Выделить весь код
Function .onInit
${If} ${RunningX64}
SetRegView 64
StrCpy $PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
StrCpy $PRODUCT_UNINST_ROOT_KEY "HKLM"
SetRegView 32
${Else}
StrCpy $PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
StrCpy $PRODUCT_UNINST_ROOT_KEY "HKLM"
${EndIf}
FunctionEnd
при этом закоментировал:
;!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
;!define PRODUCT_UNINST_ROOT_KEY "HKLM"

При копиляции ошибка в строках:

Код: Выделить весь код
Usage: ReadRegStr $(user_var: output) rootkey subkey entry
   root_key=(HKCR|HKLM|HKCU|HKU|HKCC|HKDD|HKPD|SHCTX)
Error in macro MUI_FUNCTION_STARTMENUPAGE on macroline 12
Error in macro MUI_PAGEDECLARATION_STARTMENU on macroline 30
Error in macro MUI_PAGE_STARTMENU on macroline 6

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 09:55, 13-05-2012 | #2697


Аватара для kotkovets

Ветеран


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

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


wolkow70,
Цитата wolkow70:
StrCpy $PRODUCT_UNINST_ROOT_KEY "HKLM" »
и не принимают команды работы с реестром: переменную как ветку
а зачем трогать, коль ветка неизменна и значения переменных не изменяются, тупо!
да еще в функции .OnInit сразу переключаться в 32-разряд
я же говорил, непосредственно перед записью самым обычным способом, переключать вид реестра.

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


Последний раз редактировалось kotkovets, 13-05-2012 в 10:45.


Отправлено: 10:31, 13-05-2012 | #2698


Аватара для wolkow70

Ветеран


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

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


Цитата kotkovets:
я же говорил, непосредственно перед записью самым обычным способом, переключать вид реестра. »
Перед какой записью то? Запись идет подключением макроса:

Код: Выделить весь код
Section "Создать ярлыки в меню Пуск" StartMenu
SetShellVarContext all
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_NAME}.lnk" "$INSTDIR\MyApp.exe"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
И значение $StartMenuFolder заведомо не известно.
Перед макросом что-ли ставить SetRegView 64 ?

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 13-05-2012 в 11:18.


Отправлено: 11:13, 13-05-2012 | #2699


Аватара для kotkovets

Ветеран


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

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


wolkow70, вроде бы по русскому говорю...

Цитата wolkow70:
Перед макросом что-ли ставить SetRegView 64 ? »
ну тут же очевидно, идет запись в реестр, сам макрос MUI_STARTMENU_WRITE_END
Код: Выделить весь код
!macro MUI_STARTMENU_WRITE_END

  !verbose push
  !verbose ${MUI_VERBOSE}

    !ifdef MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY & MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME
      ;Write folder to registry
      WriteRegStr "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_ROOT}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_KEY}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_REGISTRY_VALUENAME}" "${MUI_STARTMENUPAGE_${MUI_STARTMENUPAGE_CURRENT_ID}_VARIABLE}"
    !endif

  ${endif}

  !undef MUI_STARTMENUPAGE_CURRENT_ID

  !verbose pop

!macroend

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


Отправлено: 11:29, 13-05-2012 | #2700



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. ssaram Программное обеспечение Windows 406 12-02-2022 19:45
WinstyleMonitor .:[все вопросы]:. Mr dUSHA Проект WinStyle 331 12-02-2014 13:15
Delphi - Delphi .: [все вопросы] :. Serega Программирование и базы данных 94 04-05-2013 18:45
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. Microsoft Windows 2000/XP 105 30-06-2010 11:58
Вопросы по создателю инсталляций NSIS MaxDELETE Программное обеспечение Windows 14 04-07-2007 10:01




 
Переход