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

Компьютерный форум 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

 

Ветеран


Автор проектов


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

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


Цитата hb860:
Файлы дистрибутивов NSIS декомпиляции не подлежат. Уже неоднократно обсуждалось, что получить исходный NSI-файл не получится, максимум - извлечь файлы дистрибутива. Пишите свой скрипт, если нужна помощь, обращайтесь, поможем »
А где можно почитать про написание своих скриптов?Желательно на Руском языке , потому что у меня с англиским неочень

Отправлено: 23:01, 25-11-2009 | #211



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

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


Аватара для hb860

Идиот


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

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


Vsirf,
Начните отсюда, например:
http://www.winreview.ru/news.php?extend.33.11
http://www.markelov.net/articles.php?lng=ru&pg=39
http://www.compdoc.ru/bd/other/nsis/


Есть ещё http://nsis.narod.ru/nsis_help, но он неполный и мне не нравится.

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8


Последний раз редактировалось hb860, 26-11-2009 в 00:37.

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

Отправлено: 23:23, 25-11-2009 | #212


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


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

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


Изображения
Тип файла: jpg 112122121.jpg
(132.6 Kb, 36 просмотров)

помогите пожалуйста! создал инсталлятор для StrongDC++ запускаю его а он мне вон че пишет (смотрим аттачмент)...

как этого издателя сделать? что прописать нуно??? сразу пишу не нужно мне напоминать о том, что в панели управления винды7 можно это отключить, чтоб издатель не проверялся... не все пользователи это будут делать - а эта штука так и будет вылетать! после нажатия ОК все работает и устанавливается, но не приятен сам факт существования этого нелепого окна =(
и вот ещё что, эта же программа StrongDC++ когда установится, при запуске не чего такого не пишет, а в свойствах файла во вкладке Подробнее тоже самое прописано - наверное там с этим всё в порядке, а тут... =(((((

огромное спасибо заранее!

Отправлено: 23:11, 05-12-2009 | #213


Аватара для hb860

Идиот


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

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


Во-первых, сам запрос с "издателем" ничего общего не имеет. Операционная система понимает, что вы запускаете инсталлятор, и требует от вас потверждения установки программы. Проверяется не издатель, а потенциальная опасность действий приложения.
Во-вторых, раз оригинальный инсталлятор Стронга не требует повышенных привелегий на установку, а ваш - требует, значит, их действия различны. Вы в своем что-то меняете - пишете в реестр, копируете файлы или что-то такое, чего в оригинальном не делается. Проанализируйте разницу в действиях вашего и оригинального инсталляторов.
В третьих, чтобы прописать издателя, необходимо подключить этот плагин:http://nsis.sourceforge.net/Version_...heets_for_NSIS. Там же пример использования, а вот вам ещё один, если певрого мало,где указывается "издатель". Если остались вопросы - пишите, разберемся.

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8


Отправлено: 01:34, 06-12-2009 | #214


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


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

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


hb860, ок спасибо, посмотрел уже. вот тока не понятно зачем это, зачем лесть через ResHacker в .exe и сохранять .res файл? (как написано в readme.txt что лежал в архиве VIT.zip) что это даёт? и зачем это? если можно в скрипте прописать следующее:

Код: Выделить весь код
VIProductVersion "0.7.0.8"
VIAddVersionKey /LANG=${LANG_RUSSIAN} ProductName "StrongDC++"
VIAddVersionKey /LANG=${LANG_RUSSIAN} ProductVersion "2.30"
VIAddVersionKey /LANG=${LANG_RUSSIAN} CompanyName "BigMuscle"
VIAddVersionKey /LANG=${LANG_RUSSIAN} CompanyWebsite "http://strongdc.sourceforge.net"
VIAddVersionKey /LANG=${LANG_RUSSIAN} FileVersion "2.30"
VIAddVersionKey /LANG=${LANG_RUSSIAN} FileDescription "StrongDC++ - клиент для p2p файлообменных сетей."
VIAddVersionKey /LANG=${LANG_RUSSIAN} LegalCopyright "Copyright © 2009, BigMuscle"
VIAddVersionKey /LANG=${LANG_RUSSIAN} Comments "Windows XP, Vista, 7"
VIAddVersionKey /LANG=${LANG_RUSSIAN} OriginalFilename "StrongDC.exe"
извините, не понятно =(

и да скорее всего эта фишка с издателем вызвана иза "потенциальная опасности" приложения... но опять же это не у всех инсталляторов - не у всех у которых есть цифровая подпись и нет её (так же как у меня просто "Свойства => Подробно") - но видать чего то все таки не хватает, и этого просто не достаточно для подтверждения издателя.

Отправлено: 11:52, 06-12-2009 | #215


Аватара для hb860

Идиот


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

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


В ресхакер лезть не надо, он вызывается из скрипта и сгененрирует нужный бинарный блок для вашего инсталлятора
Вот тут:
Код: Выделить весь код
!packhdr tmp.dat '"c:\program files\reshack\reshacker.exe" -addoverwrite tmp.dat, tmp.dat, vit.res, versioninfo,1,'
В данном примере просто используется методика из VIT.

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8


Отправлено: 17:50, 06-12-2009 | #216


Аватара для Habetdin


Автор проектов


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

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


December 06, 2009 - NSIS 2.46 Released!
Скачать | Русификатор

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

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

Отправлено: 00:58, 07-12-2009 | #217

XCV XCV вне форума

Старожил


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

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


Цитата hb860:
Код:
ReadRegStr $R0 HKLM "Software\МойСофт" "МойАдскийКлюч"
StrCmp $R0 "Значение ключа" lblKeyExists 0
MessageBox MB_ICONQUESTION|MB_YESNO "АХТУНГ!. Нету ключа реестра. Будем ставить компонент?" IDYES 0 IDNO lblSkipSetup
ExecWait 'команда установки'
goto lblSkipSetup
lblKeyExists:
MessageBox MB_ICONQUESTION|MB_YESNO "АХТУНГ!. Есть ключ рееста. Переставим компонент?" IDYES 0 IDNO lblSkipSetup
ExecWait 'Команда перестановки'
lblSkipSetup:
......Вот как то так »
вставил в свой скрипт, выдаёт ошибку, пишет что нехватает функции или макроса.. что ещё надо добавить?
и ещё такой вопрос, при установке инсталятора созданного в nsis (если нажать кнопочку детали) показывается что делает инсталятор, но в конце установки выскакивает окошко финиш которое всё закрывает, можно ли как нибудь выдрать этот лог установки?

-------
http://static.hsdn.org/infobar/240x15.gif


Отправлено: 12:00, 10-12-2009 | #218


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Цитата XCV:
вставил в свой скрипт, выдаёт ошибку, пишет что нехватает функции или макроса.. что ещё надо добавить? »
Вроде всё правильно...может у вас ошибка в другом месте кода?

Цитата XCV:
и ещё такой вопрос, при установке инсталятора созданного в nsis (если нажать кнопочку детали) показывается что делает инсталятор, но в конце установки выскакивает окошко финиш которое всё закрывает, можно ли как нибудь выдрать этот лог установки? »
Сначала пропишем глобальные переменные
читать дальше »

Код: Выделить весь код
!define LVM_GETITEMCOUNT 0x1004
!define LVM_GETITEMTEXT 0x102D

В самую последнюю секцию (-POST) прописываем
читать дальше »

Код: Выделить весь код
push "$DESKTOP\LOG.log"
Call DumpLog
Где "$DESKTOP\LOG.log" - путь файла, в который будет происходить запись данных

+Нам необходимо добавить функцию
читать дальше »

Код: Выделить весь код
Function DumpLog
  Exch $5
  Push $0
  Push $1
  Push $2
  Push $3
  Push $4
  Push $6

  FindWindow $0 "#32770" "" $HWNDPARENT
  GetDlgItem $0 $0 1016
  StrCmp $0 0 error
  FileOpen $5 $5 "w"
  StrCmp $5 0 error
    SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
    System::Alloc ${NSIS_MAX_STRLEN}
    Pop $3
    StrCpy $2 0
    System::Call "*(i, i, i, i, i, i, i, i, i) i \
      (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
    loop: StrCmp $2 $6 done
      System::Call "User32::SendMessageA(i, i, i, i) i \
        ($0, ${LVM_GETITEMTEXT}, $2, r1)"
      System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
      FileWrite $5 "$4$\r$\n"
      IntOp $2 $2 + 1
      Goto loop
    done:
      FileClose $5
      System::Free $1
      System::Free $3
      Goto exit
  error:
    MessageBox MB_OK error
  exit:
    Pop $6
    Pop $4
    Pop $3
    Pop $2
    Pop $1
    Pop $0
    Exch $5
FunctionEnd

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

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

Отправлено: 12:52, 10-12-2009 | #219

XCV XCV вне форума

Старожил


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

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


Цитата K.A.V.:
Сначала пропишем глобальные переменные
читать дальше »
Код:
!define LVM_GETITEMCOUNT 0x1004
!define LVM_GETITEMTEXT 0x102D
В самую последнюю секцию (-POST) прописываем
читать дальше »
Код:
push "$DESKTOP\LOG.log"
Call DumpLogГде "$DESKTOP\LOG.log" - путь файла, в который будет происходить запись данных
+Нам необходимо добавить функцию
читать дальше » »
Инстолятор не мой поэтому внести в него изменения не могу, просто хочу увидеть что делает инсталятор во время установки, точнее я даже записал на видео поцесс установки и сумел просмотреть почти всё, какие папки создаёт, что туда копирует, что запускает, но некоторые файлы запускает с ключем который не влез в окошко установки, как его увидеть?
Цитата K.A.V.:
Вроде всё правильно...может у вас ошибка в другом месте кода? »
да нет, если выбрасываю эту часть скрипт без проблем компилится... попробую поискать в чем загвоздка

-------
http://static.hsdn.org/infobar/240x15.gif


Отправлено: 17:36, 10-12-2009 | #220



Компьютерный форум 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




 
Переход