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

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

 

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


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

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


Цитата Igor M:
...в этом случае пишется..»
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог.

Отправлено: 00:14, 26-09-2015 | #1841



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

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


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


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

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


Цитата Kopejkin:
А где у вас записаны все ваши файлы? Напишите все свои файлы, они и запишутся в лог. »
Все файлы я записать не могу, ибо их много и их набор меняется от сборки к сборке. Также имеется некая структура вложенных каталогов.

Отправлено: 12:19, 26-09-2015 | #1842


Старожил


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

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


Доброго времени суток...такой момент
Код: Выделить весь код
;В данном случае ключ реестра не успевает импортироваться
${registry::RestoreKey} "$EXEDIR\Test\Backup.reg" $0
;Место для кода приведенного ниже
RMDir /r "$EXEDIR\Test"
Код: Выделить весь код
;===Вариант решения 1
;помогает но что если для другого ПК не поможет (ему надо 5 сек например)
Sleep 1000
Код: Выделить весь код
;===Вариант решения 2
;не помогает,т.е. возвращается код успеха (0) но не успевает занести данные
Sleep 500
IntCmp $0 0 +2 -1
Как решить эту проблему,рациональным способом?
теоретически код возврата должен быть после импорта, но на практике видимо иначе

Отправлено: 22:55, 26-09-2015 | #1843


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


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

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


Цитата Igor M:
Прочитал статью "Uninstall only installed files" »
Простите, не увидел, чем вы пользовались. У меня этот пример толком тоже не работает.

А сколько это - много файлов?
Знатоком не являюсь, но решал бы проблему "сложным" путем, т.е. записывал отдельно все свои файлы.
Для облегчения воспользовался бы инструментом Add files to installation из HM NIS Edit и переделал бы полученный список под свои нужды.
Любой текстовый редактор, тот же HM NIS Edit, быстро выполнит замену нужных кусков.

Например, более 400 файлов в папках NSIS:
читать дальше...

PHP код: Выделить весь код

delete "$INSTDIR\Bin\GenPat.exe"
  
delete "$INSTDIR\Bin\LibraryLocal.exe"
  
delete "$INSTDIR\Bin\MakeLangId.exe"
  
delete "$INSTDIR\Bin\RegTool.bin"
  
delete "$INSTDIR\Bin\zip2exe.exe"

  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.c"
  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.ncb"
  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.sln"
  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.suo"
  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.txt"
  
delete "$INSTDIR\Contrib\CRCCheck\CRCCheck.vcproj"
  
delete "$INSTDIR\Contrib\CRCCheck\Example.nsi"

  
delete "$INSTDIR\Contrib\Graphics\Checks\big.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\classic-cross.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\classic.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\colorful.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\grey-cross.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\grey.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\modern.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\red-round.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\red.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\simple-round.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\simple-round2.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Checks\simple.bmp"

  
delete "$INSTDIR\Contrib\Graphics\Header\nsis-r.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-r-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-r.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-r-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall-r.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange-uninstall.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\orange.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Header\win.bmp"

  
delete "$INSTDIR\Contrib\Graphics\Icons\arrow-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\arrow-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\arrow2-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\arrow2-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\box-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\box-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\classic-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\classic-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\llama-blue.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\llama-grey.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-blue-full.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-blue.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-colorful.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install-full.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-blue-full.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-blue.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-colorful.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall-full.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\modern-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\nsis1-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\nsis1-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\orange-install-nsis.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\orange-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\orange-uninstall-nsis.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\orange-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\pixel-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\pixel-uninstall.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\win-install.ico"
  
delete "$INSTDIR\Contrib\Graphics\Icons\win-uninstall.ico"

  
delete "$INSTDIR\Contrib\Graphics\Wizard\arrow.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\llama.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\nullsoft.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-uninstall-nsis.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\orange-uninstall.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\orange.bmp"
  
delete "$INSTDIR\Contrib\Graphics\Wizard\win.bmp"

  
delete "$INSTDIR\Contrib\Language files\Afrikaans.nlf"
  
delete "$INSTDIR\Contrib\Language files\Afrikaans.nsh"
  
delete "$INSTDIR\Contrib\Language files\Albanian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Albanian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Arabic.nlf"
  
delete "$INSTDIR\Contrib\Language files\Arabic.nsh"
  
delete "$INSTDIR\Contrib\Language files\Basque.nlf"
  
delete "$INSTDIR\Contrib\Language files\Basque.nsh"
  
delete "$INSTDIR\Contrib\Language files\Belarusian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Belarusian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Bosnian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Bosnian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Breton.nlf"
  
delete "$INSTDIR\Contrib\Language files\Breton.nsh"
  
delete "$INSTDIR\Contrib\Language files\Bulgarian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Bulgarian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Catalan.nlf"
  
delete "$INSTDIR\Contrib\Language files\Catalan.nsh"
  
delete "$INSTDIR\Contrib\Language files\Croatian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Croatian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Czech.nlf"
  
delete "$INSTDIR\Contrib\Language files\Czech.nsh"
  
delete "$INSTDIR\Contrib\Language files\Danish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Danish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Dutch.nlf"
  
delete "$INSTDIR\Contrib\Language files\Dutch.nsh"
  
delete "$INSTDIR\Contrib\Language files\English.nlf"
  
delete "$INSTDIR\Contrib\Language files\English.nsh"
  
delete "$INSTDIR\Contrib\Language files\Esperanto.nlf"
  
delete "$INSTDIR\Contrib\Language files\Esperanto.nsh"
  
delete "$INSTDIR\Contrib\Language files\Estonian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Estonian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Farsi.nlf"
  
delete "$INSTDIR\Contrib\Language files\Farsi.nsh"
  
delete "$INSTDIR\Contrib\Language files\Finnish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Finnish.nsh"
  
delete "$INSTDIR\Contrib\Language files\French.nlf"
  
delete "$INSTDIR\Contrib\Language files\French.nsh"
  
delete "$INSTDIR\Contrib\Language files\Galician.nlf"
  
delete "$INSTDIR\Contrib\Language files\Galician.nsh"
  
delete "$INSTDIR\Contrib\Language files\German.nlf"
  
delete "$INSTDIR\Contrib\Language files\German.nsh"
  
delete "$INSTDIR\Contrib\Language files\Greek.nlf"
  
delete "$INSTDIR\Contrib\Language files\Greek.nsh"
  
delete "$INSTDIR\Contrib\Language files\Hebrew.nlf"
  
delete "$INSTDIR\Contrib\Language files\Hebrew.nsh"
  
delete "$INSTDIR\Contrib\Language files\Hungarian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Hungarian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Icelandic.nlf"
  
delete "$INSTDIR\Contrib\Language files\Icelandic.nsh"
  
delete "$INSTDIR\Contrib\Language files\Indonesian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Indonesian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Irish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Irish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Italian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Italian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Japanese.nlf"
  
delete "$INSTDIR\Contrib\Language files\Japanese.nsh"
  
delete "$INSTDIR\Contrib\Language files\Korean.nlf"
  
delete "$INSTDIR\Contrib\Language files\Korean.nsh"
  
delete "$INSTDIR\Contrib\Language files\Kurdish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Kurdish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Latvian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Latvian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Lithuanian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Lithuanian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Luxembourgish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Luxembourgish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Macedonian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Macedonian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Malay.nlf"
  
delete "$INSTDIR\Contrib\Language files\Malay.nsh"
  
delete "$INSTDIR\Contrib\Language files\Mongolian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Mongolian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Norwegian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Norwegian.nsh"
  
delete "$INSTDIR\Contrib\Language files\NorwegianNynorsk.nlf"
  
delete "$INSTDIR\Contrib\Language files\NorwegianNynorsk.nsh"
  
delete "$INSTDIR\Contrib\Language files\Polish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Polish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Portuguese.nlf"
  
delete "$INSTDIR\Contrib\Language files\Portuguese.nsh"
  
delete "$INSTDIR\Contrib\Language files\PortugueseBR.nlf"
  
delete "$INSTDIR\Contrib\Language files\PortugueseBR.nsh"
  
delete "$INSTDIR\Contrib\Language files\Romanian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Romanian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Russian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Russian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Serbian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Serbian.nsh"
  
delete "$INSTDIR\Contrib\Language files\SerbianLatin.nlf"
  
delete "$INSTDIR\Contrib\Language files\SerbianLatin.nsh"
  
delete "$INSTDIR\Contrib\Language files\SimpChinese.nlf"
  
delete "$INSTDIR\Contrib\Language files\SimpChinese.nsh"
  
delete "$INSTDIR\Contrib\Language files\Slovak.nlf"
  
delete "$INSTDIR\Contrib\Language files\Slovak.nsh"
  
delete "$INSTDIR\Contrib\Language files\Slovenian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Slovenian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Spanish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Spanish.nsh"
  
delete "$INSTDIR\Contrib\Language files\SpanishInternational.nlf"
  
delete "$INSTDIR\Contrib\Language files\SpanishInternational.nsh"
  
delete "$INSTDIR\Contrib\Language files\Swedish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Swedish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Thai.nlf"
  
delete "$INSTDIR\Contrib\Language files\Thai.nsh"
  
delete "$INSTDIR\Contrib\Language files\TradChinese.nlf"
  
delete "$INSTDIR\Contrib\Language files\TradChinese.nsh"
  
delete "$INSTDIR\Contrib\Language files\Turkish.nlf"
  
delete "$INSTDIR\Contrib\Language files\Turkish.nsh"
  
delete "$INSTDIR\Contrib\Language files\Ukrainian.nlf"
  
delete "$INSTDIR\Contrib\Language files\Ukrainian.nsh"
  
delete "$INSTDIR\Contrib\Language files\Uzbek.nlf"
  
delete "$INSTDIR\Contrib\Language files\Uzbek.nsh"
  
delete "$INSTDIR\Contrib\Language files\Welsh.nlf"
  
delete "$INSTDIR\Contrib\Language files\Welsh.nsh"

  
delete "$INSTDIR\Contrib\Modern UI\ioSpecial.ini"
  
delete "$INSTDIR\Contrib\Modern UI\System.nsh"

  
delete "$INSTDIR\Contrib\Modern UI 2\Deprecated.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Interface.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Localization.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\MUI2.nsh"

  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Components.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Directory.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Finish.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\InstallFiles.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\License.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\StartMenu.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\UninstallConfirm.nsh"
  
delete "$INSTDIR\Contrib\Modern UI 2\Pages\Welcome.nsh"

  
delete "$INSTDIR\Contrib\Modern UI 2\Pages.nsh"

  
delete "$INSTDIR\Contrib\UIs\default.exe"
  
delete "$INSTDIR\Contrib\UIs\modern.exe"
  
delete "$INSTDIR\Contrib\UIs\modern_headerbmp.exe"
  
delete "$INSTDIR\Contrib\UIs\modern_headerbmpr.exe"
  
delete "$INSTDIR\Contrib\UIs\modern_nodesc.exe"
  
delete "$INSTDIR\Contrib\UIs\modern_smalldesc.exe"
  
delete "$INSTDIR\Contrib\UIs\sdbarker_tiny.exe"

  
delete "$INSTDIR\Contrib\zip2exe\Base.nsh"
  
delete "$INSTDIR\Contrib\zip2exe\Classic.nsh"
  
delete "$INSTDIR\Contrib\zip2exe\Modern.nsh"

  
delete "$INSTDIR\COPYING"

  
delete "$INSTDIR\Docs\AdvSplash\advsplash.txt"

  
delete "$INSTDIR\Docs\Banner\Readme.txt"

  
delete "$INSTDIR\Docs\BgImage\BgImage.txt"

  
delete "$INSTDIR\Docs\Dialer\Dialer.txt"

  
delete "$INSTDIR\Docs\InstallOptions\Changelog.txt"
  
delete "$INSTDIR\Docs\InstallOptions\Readme.html"

  
delete "$INSTDIR\Docs\makensisw\License.txt"
  
delete "$INSTDIR\Docs\makensisw\Readme.txt"

  
delete "$INSTDIR\Docs\Math\Math.txt"

  
delete "$INSTDIR\Docs\Modern UI\Changelog.txt"

  
delete "$INSTDIR\Docs\Modern UI\images\closed.gif"
  
delete "$INSTDIR\Docs\Modern UI\images\header.gif"
  
delete "$INSTDIR\Docs\Modern UI\images\open.gif"
  
delete "$INSTDIR\Docs\Modern UI\images\screen1.png"
  
delete "$INSTDIR\Docs\Modern UI\images\screen2.png"

  
delete "$INSTDIR\Docs\Modern UI\License.txt"
  
delete "$INSTDIR\Docs\Modern UI\Readme.html"

  
delete "$INSTDIR\Docs\Modern UI 2\images\closed.gif"
  
delete "$INSTDIR\Docs\Modern UI 2\images\header.gif"
  
delete "$INSTDIR\Docs\Modern UI 2\images\open.gif"
  
delete "$INSTDIR\Docs\Modern UI 2\images\screen1.png"
  
delete "$INSTDIR\Docs\Modern UI 2\images\screen2.png"

  
delete "$INSTDIR\Docs\Modern UI 2\License.txt"
  
delete "$INSTDIR\Docs\Modern UI 2\Readme.html"

  
delete "$INSTDIR\Docs\MultiUser\Readme.html"

  
delete "$INSTDIR\Docs\nsDialogs\Readme.html"

  
delete "$INSTDIR\Docs\nsExec\nsExec.txt"

  
delete "$INSTDIR\Docs\NSISdl\License.txt"
  
delete "$INSTDIR\Docs\NSISdl\ReadMe.txt"

  
delete "$INSTDIR\Docs\Splash\splash.txt"

  
delete "$INSTDIR\Docs\StartMenu\Readme.txt"

  
delete "$INSTDIR\Docs\StrFunc\StrFunc.txt"

  
delete "$INSTDIR\Docs\System\System.html"
  
delete "$INSTDIR\Docs\System\WhatsNew.txt"

  
delete "$INSTDIR\Docs\TextReplace\Readme.txt"

  
delete "$INSTDIR\Docs\VPatch\Readme.html"

  
delete "$INSTDIR\Example\NewTextreplaceTestA.nsi"
  
delete "$INSTDIR\Example\NewTextreplaceTestW.nsi"

  
delete "$INSTDIR\Example\TextFiles\FindItAnsi1251.txt"
  
delete "$INSTDIR\Example\TextFiles\FindItUTF16LE.txt"
  
delete "$INSTDIR\Example\TextFiles\FindItUTF8.txt"
  
delete "$INSTDIR\Example\TextFiles\inputAnsi1251.txt"
  
delete "$INSTDIR\Example\TextFiles\inputUTF16LE.txt"
  
delete "$INSTDIR\Example\TextFiles\inputUTF8.txt"
  
delete "$INSTDIR\Example\TextFiles\ReplaceItAnsi.txt"
  
delete "$INSTDIR\Example\TextFiles\ReplaceItRecode.txt"
  
delete "$INSTDIR\Example\TextFiles\ReplaceWithUTF16BE.txt"
  
delete "$INSTDIR\Example\TextFiles\ReplaceWithUTF16LE.txt"

  
delete "$INSTDIR\Examples\AdvSplash\Example.nsi"

  
delete "$INSTDIR\Examples\Banner\Example.nsi"

  
delete "$INSTDIR\Examples\BgImage\Example.nsi"

  
delete "$INSTDIR\Examples\bigtest.nsi"
  
delete "$INSTDIR\Examples\example1.nsi"
  
delete "$INSTDIR\Examples\example2.nsi"
  
delete "$INSTDIR\Examples\FileFunc.ini"
  
delete "$INSTDIR\Examples\FileFunc.nsi"
  
delete "$INSTDIR\Examples\FileFuncTest.nsi"
  
delete "$INSTDIR\Examples\gfx.nsi"

  
delete "$INSTDIR\Examples\InstallOptions\test.ini"
  
delete "$INSTDIR\Examples\InstallOptions\test.nsi"
  
delete "$INSTDIR\Examples\InstallOptions\testimgs.ini"
  
delete "$INSTDIR\Examples\InstallOptions\testimgs.nsi"
  
delete "$INSTDIR\Examples\InstallOptions\testlink.ini"
  
delete "$INSTDIR\Examples\InstallOptions\testlink.nsi"
  
delete "$INSTDIR\Examples\InstallOptions\testnotify.ini"
  
delete "$INSTDIR\Examples\InstallOptions\testnotify.nsi"

  
delete "$INSTDIR\Examples\languages.nsi"
  
delete "$INSTDIR\Examples\Library.nsi"
  
delete "$INSTDIR\Examples\LogicLib.nsi"
  
delete "$INSTDIR\Examples\makensis.nsi"

  
delete "$INSTDIR\Examples\Math\math.nsi"
  
delete "$INSTDIR\Examples\Math\MathTest.exe"
  
delete "$INSTDIR\Examples\Math\mathtest.ini"
  
delete "$INSTDIR\Examples\Math\mathtest.nsi"
  
delete "$INSTDIR\Examples\Math\mathtest.txt"

  
delete "$INSTDIR\Examples\Memento.nsi"

  
delete "$INSTDIR\Examples\Modern UI\Basic.nsi"
  
delete "$INSTDIR\Examples\Modern UI\HeaderBitmap.nsi"
  
delete "$INSTDIR\Examples\Modern UI\MultiLanguage.nsi"
  
delete "$INSTDIR\Examples\Modern UI\StartMenu.nsi"
  
delete "$INSTDIR\Examples\Modern UI\WelcomeFinish.nsi"

  
delete "$INSTDIR\Examples\nsDialogs\example.nsi"
  
delete "$INSTDIR\Examples\nsDialogs\InstallOptions.nsi"
  
delete "$INSTDIR\Examples\nsDialogs\timer.nsi"
  
delete "$INSTDIR\Examples\nsDialogs\welcome.nsi"

  
delete "$INSTDIR\Examples\nsExec\test.nsi"

  
delete "$INSTDIR\Examples\one-section.nsi"

  
delete "$INSTDIR\Examples\Plugin\exdll-vs2008.sln"
  
delete "$INSTDIR\Examples\Plugin\exdll-vs2008.vcproj"
  
delete "$INSTDIR\Examples\Plugin\exdll.c"
  
delete "$INSTDIR\Examples\Plugin\exdll.dpr"
  
delete "$INSTDIR\Examples\Plugin\exdll.dsp"
  
delete "$INSTDIR\Examples\Plugin\exdll.dsw"
  
delete "$INSTDIR\Examples\Plugin\exdll_with_unit.dpr"
  
delete "$INSTDIR\Examples\Plugin\extdll.inc"

  
delete "$INSTDIR\Examples\Plugin\nsis\api.h"
  
delete "$INSTDIR\Examples\Plugin\nsis\pluginapi.h"
  
delete "$INSTDIR\Examples\Plugin\nsis\pluginapi.lib"

  
delete "$INSTDIR\Examples\Plugin\nsis.pas"

  
delete "$INSTDIR\Examples\primes.nsi"
  
delete "$INSTDIR\Examples\rtest.nsi"
  
delete "$INSTDIR\Examples\silent.nsi"

  
delete "$INSTDIR\Examples\Splash\Example.nsi"

  
delete "$INSTDIR\Examples\StartMenu\Example.nsi"

  
delete "$INSTDIR\Examples\StrFunc.nsi"

  
delete "$INSTDIR\Examples\System\Resource.dll"
  
delete "$INSTDIR\Examples\System\SysFunc.nsh"
  
delete "$INSTDIR\Examples\System\System.nsh"
  
delete "$INSTDIR\Examples\System\System.nsi"

  
delete "$INSTDIR\Examples\TextFunc.ini"
  
delete "$INSTDIR\Examples\TextFunc.nsi"
  
delete "$INSTDIR\Examples\TextFuncTest.nsi"

  
delete "$INSTDIR\Examples\TextReplace\TextReplaceTest.nsi"

  
delete "$INSTDIR\Examples\UserInfo\UserInfo.nsi"

  
delete "$INSTDIR\Examples\UserVars.nsi"
  
delete "$INSTDIR\Examples\VersionInfo.nsi"
  
delete "$INSTDIR\Examples\viewhtml.nsi"

  
delete "$INSTDIR\Examples\VPatch\example.nsi"
  
delete "$INSTDIR\Examples\VPatch\newfile.txt"
  
delete "$INSTDIR\Examples\VPatch\oldfile.txt"
  
delete "$INSTDIR\Examples\VPatch\patch.pat"

  
delete "$INSTDIR\Examples\waplugin.nsi"
  
delete "$INSTDIR\Examples\WordFunc.ini"
  
delete "$INSTDIR\Examples\WordFunc.nsi"
  
delete "$INSTDIR\Examples\WordFuncTest.nsi"

  
delete "$INSTDIR\Include\Colors.nsh"
  
delete "$INSTDIR\Include\FileFunc.nsh"
  
delete "$INSTDIR\Include\InstallOptions.nsh"
  
delete "$INSTDIR\Include\LangFile.nsh"
  
delete "$INSTDIR\Include\Library.nsh"
  
delete "$INSTDIR\Include\LogicLib.nsh"
  
delete "$INSTDIR\Include\Memento.nsh"
  
delete "$INSTDIR\Include\MUI.nsh"
  
delete "$INSTDIR\Include\MUI2.nsh"
  
delete "$INSTDIR\Include\MultiUser.nsh"
  
delete "$INSTDIR\Include\NewTextreplace.nsh"
  
delete "$INSTDIR\Include\nsDialogs.nsh"
  
delete "$INSTDIR\Include\ProcessFunc.nsh"
  
delete "$INSTDIR\Include\Sections.nsh"
  
delete "$INSTDIR\Include\StrFunc.nsh"
  
delete "$INSTDIR\Include\TextFunc.nsh"
  
delete "$INSTDIR\Include\TextReplace.nsh"
  
delete "$INSTDIR\Include\UnInstallLog.nsh"
  
delete "$INSTDIR\Include\UpgradeDLL.nsh"
  
delete "$INSTDIR\Include\Util.nsh"
  
delete "$INSTDIR\Include\VB6RunTime.nsh"
  
delete "$INSTDIR\Include\VPatchLib.nsh"

  
delete "$INSTDIR\Include\Win\WinDef.nsh"
  
delete "$INSTDIR\Include\Win\WinError.nsh"
  
delete "$INSTDIR\Include\Win\WinNT.nsh"
  
delete "$INSTDIR\Include\Win\WinUser.nsh"

  
delete "$INSTDIR\Include\WinCore.nsh"
  
delete "$INSTDIR\Include\WinMessages.nsh"
  
delete "$INSTDIR\Include\WinVer.nsh"
  
delete "$INSTDIR\Include\WinVer2.nsh"
  
delete "$INSTDIR\Include\WMI.nsh"
  
delete "$INSTDIR\Include\WordFunc.nsh"
  
delete "$INSTDIR\Include\x64.nsh"

  
delete "$INSTDIR\makensis.exe"
  
delete "$INSTDIR\makensisw.exe"

  
delete "$INSTDIR\Menu\images\header.gif"
  
delete "$INSTDIR\Menu\images\line.gif"
  
delete "$INSTDIR\Menu\images\site.gif"

  
delete "$INSTDIR\Menu\index.html"

  
delete "$INSTDIR\NSIS.chm"
  
delete "$INSTDIR\NSIS.exe"
  
delete "$INSTDIR\nsisconf.nsh"
  
  
delete "$INSTDIR\Plugins\AdvSplash.dll"
  
delete "$INSTDIR\Plugins\Banner.dll"
  
delete "$INSTDIR\Plugins\BgImage.dll"
  
delete "$INSTDIR\Plugins\CRCCheck.dll"
  
delete "$INSTDIR\Plugins\Dialer.dll"
  
delete "$INSTDIR\Plugins\InstallOptions.dll"
  
delete "$INSTDIR\Plugins\LangDLL.dll"
  
delete "$INSTDIR\Plugins\Math.dll"
  
delete "$INSTDIR\Plugins\md5dll.dll"
  
delete "$INSTDIR\Plugins\NewTextreplace.dll"
  
delete "$INSTDIR\Plugins\nsDialogs.dll"
  
delete "$INSTDIR\Plugins\nsExec.dll"
  
delete "$INSTDIR\Plugins\NSISdl.dll"
  
delete "$INSTDIR\Plugins\Splash.dll"
  
delete "$INSTDIR\Plugins\StartMenu.dll"
  
delete "$INSTDIR\Plugins\System.dll"
  
delete "$INSTDIR\Plugins\TextReplace.dll"
  
delete "$INSTDIR\Plugins\TypeLib.dll"
  
delete "$INSTDIR\Plugins\UserInfo.dll"
  
delete "$INSTDIR\Plugins\VPatch.dll"
  
delete "$INSTDIR\Plugins\WPatch.dll"
  
delete "$INSTDIR\Plugins\WPatchW.dll"
  
  
delete "$INSTDIR\Stubs\bzip2"
  
delete "$INSTDIR\Stubs\bzip2_solid"
  
delete "$INSTDIR\Stubs\lzma"
  
delete "$INSTDIR\Stubs\lzma_solid"
  
delete "$INSTDIR\Stubs\uninst"
  
delete "$INSTDIR\Stubs\zlib"
  
delete "$INSTDIR\Stubs\zlib_solid"
  
  
delete "$INSTDIR\uninst-nsis.exe" 


Не спеша ковырялся минут 5, не более.

И еще непонятно, зачем вам удалять папку, которую вы не создавали?

Последний раз редактировалось Kopejkin, 27-09-2015 в 17:21.


Отправлено: 16:42, 27-09-2015 | #1844


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

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


Contributor


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

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


Цитата nfs911:
Как решить эту проблему,рациональным способом?
теоретически код возврата должен быть после импорта, но на практике видимо иначе »
Хотите сказать, команда не ждёт завершения исполнения импорта в реестр? Честно сказать, не использовал конкретно эту команду этого плагина, проверять лень
Воспользуйтесь исполнением regedit напрямую (хотя в документации к плагину сказано, что импорт также производится через regedit)
Код: Выделить весь код
ExecWait '$WINDIR\regedit.exe /s "путь к reg файлу"'
Цитата Igor M:
Столкнулся с необходимостью в деинсталляторе удалять только установленные инсталлером файлы, а не всю папку. »
Цитата Igor M:
Неужели нет простого и лёгкого способа решить указанную проблему? »
1. Создавать список файлов вручную и закидывать их в скрипт, как предложил выше Kopejkin
2. Выполнять поиск файлов командой Locate в папке установки после распаковки всех файлов и создавать список в INI формате, записывая в файл, в денисталляторе обрабатывать файл и удалять файлы проходясь по списку.
3. Если используете графический интерфейс при установке, можно попробовать поковырять пример кода LOG-файл установки из нашего справочника, за место записи лог-файла парсить каждую строку на предмет типа команды, т.е. прочитали строку, в ней например такой текст:
Код: Выделить весь код
Создание ярлыка: C:\Program Files (x86)\Моя программа\explorer.lnk
берём из строки первые X символов (для команды ярлыка это 17 символов, текст+пробел), если эти первые 17 символов = строке Создание ярлыка: , то отрезаем от строки первые 17 символов и остаётся только путь к ярлыку, его записываем в INI файл в секцию с ярлыками
По этой же логике делаем с другими командами, создание папок, копирование файлов и т.д....
"резать" строку по количеству символов можно командой StrCpy

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


Отправлено: 21:44, 27-09-2015 | #1845


Старожил


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

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


Цитата K.A.V.:
ExecWait '$WINDIR\regedit.exe /s "путь к reg файлу"' »
Это само собой...просто я думал в справке имели введу эквивалент результату,а не то что юзают запуск regedit'a
спс за уточнение))
Было бы хорошо реализовать через System::Call "advapi32:: ))))
Если найду время и желание - буду пробовать с помощью WinAPI реализовать...

Отправлено: 22:39, 27-09-2015 | #1846


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


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

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


Спасибо, за советы!
К сожалению, на мой взгляд, всё это - костыли: скрипты, списки файлов, парсинг...

Цитата Kopejkin:
И еще непонятно, зачем вам удалять папку, которую вы не создавали? »
Ну, например, при необходимости убить результаты деятельности программы: логи, конфиги и т.п.

Отправлено: 00:16, 28-09-2015 | #1847


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


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

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


Цитата Igor M:
Ну, например... »
Руководство пользователя. раздел 4.9.1.8. RMDir (стр. 66)

Отправлено: 10:30, 28-09-2015 | #1848


Аватара для Dodakaedr

Ветеран


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

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


Как записать путь в таком виде в реестре?
Код: Выделить весь код
C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE "%1"

-------
Inno Setup 5 Ultra Unicode


Отправлено: 21:09, 28-09-2015 | #1849


Старожил


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

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


Dodakaedr,


Код: Выделить весь код
""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""
WriteRegStr HKLM "SOFTWARE\MyProg" "Path" ""C:\PROGRA~1\PHOTOL~1\PHOTOL~1.EXE $\"%1$\""

Отправлено: 22:59, 28-09-2015 | #1850



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




 
Переход