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

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

 

Аватара для Комсомолец

Ветеран


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


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

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


AlexThePeacemaker, так же с ключом /S.
Uninstall.exe /S

-------
Для того, чтобы узнать, что такое рекурсия - необходимо узнать, что такое рекурсия. :)

http://forum.oszone.net/image.php?type=sigpic&userid=69953&dateline=1440353086


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



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

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


Ветеран


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

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


Здравствуйте, надумал сделать конвертер рег-файлов в формат .nsi, если конечно это актуально...
В справке описано далеко не всё, поэтому решил задать вопрос в этой теме.
Как занести этот рег-файл в реестр:
Пример
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\My Program]

[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]
; REG_BINARY
"Component Information"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
; REG_NONE
"WMVFile"=hex(0):
; REG_EXPAND_SZ
"Command"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,\
  00,75,00,6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,\
  25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,\
  00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,79,00,6e,00,\
  63,00,75,00,69,00,2e,00,64,00,6c,00,6c,00,2c,00,42,00,72,00,69,00,65,00,66,\
  00,63,00,61,00,73,00,65,00,5f,00,43,00,72,00,65,00,61,00,74,00,65,00,20,00,\
  25,00,32,00,21,00,64,00,21,00,20,00,25,00,31,00,00,00
; REG_MULTI_SZ
"SystemBiosVersion"=hex(7):47,00,42,00,54,00,20,00,20,00,20,00,20,00,2d,00,20,\
  00,34,00,32,00,33,00,30,00,32,00,65,00,33,00,31,00,00,00,41,00,77,00,61,00,\
  72,00,64,00,20,00,4d,00,6f,00,64,00,75,00,6c,00,61,00,72,00,20,00,42,00,49,\
  00,4f,00,53,00,20,00,76,00,36,00,2e,00,30,00,30,00,50,00,47,00,00,00,00,00
; REG_MULTI_SZ
"SmartoolX.BaseAddin,Version=\"8.0.2632.25087\",Culture=\"neutral\",FileVersion=\"8.0.2632.25087\",ProcessorArchitecture=\"MSIL\""=hex(7):74,\
  00,43,00,64,00,24,00,5e,00,4b,00,32,00,6a,00,64,00,3f,00,2c,00,50,00,47,00,\
  45,00,43,00,4d,00,43,00,59,00,7a,00,52,00,53,00,6d,00,61,00,72,00,74,00,6f,\
  00,6f,00,6c,00,58,00,3e,00,76,00,7a,00,6c,00,72,00,2d,00,40,00,6b,00,37,00,\
  29,00,3f,00,55,00,25,00,40,00,4f,00,2c,00,56,00,72,00,6a,00,34,00,48,00,00,\
  00,00,00
; REG_RESOURCE_LIST
"\\Device\\0000003f.Raw"=hex(8):01,00,00,00,0f,00,00,00,ff,ff,ff,ff,00,00,00,\
  00,01,00,00,00,02,03,00,00,09,00,00,00,09,00,00,00,ff,ff,ff,ff
; REG_FULL_RESOURCE_DESCRIPTOR
"Configuration Data"=hex(9):ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,02,00,00,00,05,\
  00,00,00,0c,00,00,00,00,00,00,00,00,00,00,00,80,00,ff,03,00,00,3f,00,fe,00,\
  01,00,05,00,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,0c,00,00,ce,00,\
  00,00,00,0f,00,00,00,01,00
; REG_RESOURCE_REQUIREMENTS_LIST  
"Pci"=hex(a):48,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,01,00,01,00,11,00,00,00,00,01,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,ff,ff,ff,ff,00,00,00,00,\
  08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,ff,\
  ff,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,\
  00,00,00,00,00,00,7f,01,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,02,00,00,00,00,00,00,ff,02,00,00,00,00,00,00,08,01,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,03,00,00,00,00,00,00,6f,03,00,00,00,\
  00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,78,03,00,00,00,00,\
  00,00,7a,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,e8,02,00,00,00,00,00,00,ff,02,00,00,00,00,00,00,08,01,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,f0,01,00,00,00,00,00,00,f8,01,00,00,00,00,00,00,08,\
  01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,b0,03,00,00,00,00,00,00,cf,03,\
  00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e8,03,00,\
  00,00,00,00,00,ff,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,ce,01,00,00,00,00,00,00,cf,01,00,00,00,00,00,00,08,01,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,ff,03,00,00,00,00,\
  00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,10,00,00,00,00,\
  00,ff,ff,ff,ff,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,0f,00,00,00,00,00,ff,ff,0f,00,00,00,00,00,08,03,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,08,00,00,00,00,00,ff,ff,0b,00,00,00,00,00,08,03,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,00,ff,ff,0f,\
  00,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,\
  00,00,00,00,ff,ff,bf,ff,00,00,00,00
; REG_QWORD
"LastInstallTime"=hex(b):d6,1a,3e,7a,f8,c4,c9,01
; REG_DWORD
"FeatureSet"=dword:a0033fff
; REG_SZ
"1"="\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /e"
"2"="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""
"3"="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"print:%1\""
"4"="C:\\Program Files\\Paint.NET\\PaintDotNet.exe"
"Path"="C:\\Program Files\\Paint.NET"

[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]
; удаление данных
"Component Information"=-
; удаление секции My Program
[-HKEY_LOCAL_MACHINE\SOFTWARE\My Program]


Для Inno Setup, это бы выглядело так:
Пример
Код: Выделить весь код
[Registry]
; Converter v.0.1.3
Root: HKLM; SubKey: SOFTWARE\My Program; Flags: uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: binary; ValueName: Component Information; ValueData: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: none; ValueName: WMVFile; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: expandsz; ValueName: Command; ValueData: %SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\syncui.dll,Briefcase_Create %2!d! %1; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: multisz; ValueName: SystemBiosVersion; ValueData: GBT    - 42302e31{break}Award Modular BIOS v6.00PG{break}{break}; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: multisz; ValueName: "SmartoolX.BaseAddin,Version=""8.0.2632.25087"",Culture=""neutral"",FileVersion=""8.0.2632.25087"",ProcessorArchitecture=""MSIL"""; ValueData: tCd$^K2jd?,PGECMCYzRSmartoolX>vzlr-@k7)?U%@O,Vrj4H{break}{break}; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: dword; ValueName: FeatureSet; ValueData: $a0033fff; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: string; ValueName: 1; ValueData: """C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"" /e"; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: string; ValueName: 2; ValueData: """C:\Program Files\Paint.NET\PaintDotNet.exe"" ""%1"""; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: string; ValueName: 3; ValueData: """C:\Program Files\Paint.NET\PaintDotNet.exe"" ""print:%1"""; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: string; ValueName: 4; ValueData: C:\Program Files\Paint.NET\PaintDotNet.exe; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueType: string; ValueName: Path; ValueData: C:\Program Files\Paint.NET; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; SubKey: SOFTWARE\My Program\System; ValueName: Component Information; Flags: deletevalue
Root: HKLM; SubKey: SOFTWARE\My Program; Flags: deletekey

[code]
var
  res: Integer;
  reg,str: string;
// к сожалению некоторые типы ключей не поддерживаются в IS, поэтому приходится вносить изменения в реестр таким образом... :)
procedure CreateReg;
begin
  reg:= ExpandConstant('{tmp}\regkey.reg');
  str:= 'Windows Registry Editor Version 5.00' + #13#13 +
        '[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]' + #13 + 
        // тип ключа - REG_RESOURCE_LIST
        '"\\Device\\0000003f.Raw"=hex(8):01,00,00,00,0f,00,00,00,ff,ff,ff,ff,00,00,00,00,01,00,00,00,02,03,00,00,09,00,00,00,09,00,00,00,ff,ff,ff,ff' + #13#13 + 
        '[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]' + #13 + 
        // тип ключа - REG_FULL_RESOURCE_DESCRIPTOR
        '"Configuration Data"=hex(9):ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,02,00,00,00,05,00,00,00,0c,00,00,00,00,00,00,00,00,00,00,00,80,00,ff,03,00,00,3f,00,fe,00,01,00,05,00,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,0c,00,00,ce,00,00,00,00,0f,00,00,00,01,00' + #13#13 + 
        '[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]' + #13 + 
        // тип ключа - REG_RESOURCE_REQUIREMENTS_LIST
        '"Pci"=hex(a):48,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,01,00,01,00,11,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,ff,ff,ff,ff,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,ff,ff,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,00,00,00,00,7f,01,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,00,00,00,ff,02,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,03,00,00,00,00,00,00,6f,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,78,03,00,00,00,00,00,00,7a,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e8,02,00,00,00,00,00,00,ff,02,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,f0,01,00,00,00,00,00,00,f8,01,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,b0,03,00,00,00,00,00,00,cf,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e8,03,00,00,00,00,00,00,ff,03,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,ce,01,00,00,00,00,00,00,cf,01,00,00,00,00,00,00,08,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,ff,03,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,10,00,00,00,00,00,ff,ff,ff,ff,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0f,00,00,00,00,00,ff,ff,0f,00,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,00,ff,ff,0b,00,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,00,ff,ff,0f,00,00,00,00,00,08,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08,00,00,00,00,00,ff,ff,bf,ff,00,00,00,00' + #13#13 + 
        '[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]' + #13 + 
        // тип ключа - REG_QWORD, поддерживается в IS, начиная с версии 5.3
        '"LastInstallTime"=hex(b):d6,1a,3e,7a,f8,c4,c9,01' + #13#13 + 
        '';
  SaveStringToFile(reg, str, False);
end;
// заносим ключ в реестр
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then begin
    CreateReg;
    Exec('regedit.exe',' /s ' + AddQuotes(reg),ExpandConstant('{win}'),SW_HIDE,ewWaitUntilTerminated,res);
    DeleteFile(reg);
  end;
end;
// при деинсталляции удаляем значения
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then begin
    RegDeleteValue(HKEY_LOCAL_MACHINE,'SOFTWARE\My Program\System','\\Device\\0000003f.Raw');
    RegDeleteValue(HKEY_LOCAL_MACHINE,'SOFTWARE\My Program\System','Configuration Data');
    RegDeleteValue(HKEY_LOCAL_MACHINE,'SOFTWARE\My Program\System','Pci');
    RegDeleteValue(HKEY_LOCAL_MACHINE,'SOFTWARE\My Program\System','LastInstallTime');
  end;
end;
// -= Converter v.0.1.3 =-
// Затраченное время: 31 мсек.


Как это будет выглядеть для NSIS?

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 18:50, 05-07-2009 | #162


Аватара для Habetdin


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


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

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


Serega,
из справки:

Цитата:
4.9.2.14 WriteRegBin
Код: Выделить весь код
root_key subkey key_name valuedata
This command writes a block of binary data to the registry. Valid values for root_key are listed under WriteRegStr. Valuedata is in hexadecimal (e.g. DEADBEEF01223211151). The error flag is set if the binary data could not be written to the registry. If the registry key doesn't exist it will be created.

Код: Выделить весь код
WriteRegBin HKLM "Software\My Company\My Software" "Binary Value" DEADBEEF01223211151
4.9.2.15 WriteRegDWORD
Код: Выделить весь код
root_key subkey key_name value
This command writes a dword (32 bit integer) to the registry (a user variable can be specified). Valid values for root_key are listed under WriteRegStr. The error flag is set if the dword could not be written to the registry. If the registry key doesn't exist it will be created.

Код: Выделить весь код
WriteRegDWORD HKLM "Software\My Company\My Software" "DWORD Value" 0xDEADBEEF
4.9.2.16 WriteRegStr
Код: Выделить весь код
root_key subkey key_name value
Write a string to the registry. See WriteRegExpandStr for more details.

Код: Выделить весь код
WriteRegStr HKLM "Software\My Company\My Software" "String Value" "dead beef"
4.9.2.17 WriteRegExpandStr
Код: Выделить весь код
root_key subkey key_name value
Write a string to the registry. root_key must be one of:

HKCR or HKEY_CLASSES_ROOT
HKLM or HKEY_LOCAL_MACHINE
HKCU or HKEY_CURRENT_USER
HKU or HKEY_USERS
HKCC or HKEY_CURRENT_CONFIG
HKDD or HKEY_DYN_DATA
HKPD or HKEY_PERFORMANCE_DATA
SHCTX or SHELL_CONTEXT
If root_key is SHCTX or SHELL_CONTEXT, it will be replaced with HKLM if SetShellVarContext is set to all and with HKCU if SetShellVarContext is set to current.

The error flag is set if the string could not be written to the registry. The type of the string will be REG_SZ for WriteRegStr, or REG_EXPAND_STR for WriteRegExpandStr. If the registry key doesn't exist it will be created.

Код: Выделить весь код
WriteRegExpandStr HKLM "Software\My Company\My Software" "Expand String Value" "%WINDIR%\notepad.exe"

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

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

Отправлено: 19:54, 05-07-2009 | #163


Ветеран


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

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


Habetdin, справку я прочитал. С WriteRegBin и WriteRegDWORD, в принципе понятно, но вот остальные ключи?

Повторюсь:
Цитата Serega:
Как это будет выглядеть для NSIS? »

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 20:17, 05-07-2009 | #164


Аватара для hb860

Идиот


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

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


Serega,
читать дальше »

############################### reg2nsis begin #################################
# This NSIS-script was generated by the Reg2Nsis utility #
# Author : Artem Zankovich #
# URL : http://aarrtteemm.nm.ru #
# Usage : You can freely inserts this into your setup script as inline text #
# or include file with the help of !include directive. #
# Please don't remove this header. #
################################################################################

WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program" "" ""
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Component Information" 00000000000000000000000000000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "WMVFile"
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Command" 2500530079007300740065006d0052006f006f00740025005c00730079007300740065006d00330032005c00720075006e00 64006c006c00330032002e0065007800650020002500530079007300740065006d0052006f006f00740025005c0073007900 7300740065006d00330032005c00730079006e006300750069002e0064006c006c002c004200720069006500660063006100 730065005f004300720065006100740065002000250032002100640021002000250031000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "SystemBiosVersion" 47004200540020002000200020002d0020003400320033003000320065003300310000004100770061007200640020004d00 6f00640075006c00610072002000420049004f0053002000760036002e00300030005000470000000000
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "$\"SmartoolX.BaseAddin,Version" "\$\"8.0.2632.25087\$\",Culture=\$\"neutral\$\",FileVersion=\$\"8.0.2632.25087\$\",ProcessorArchitec ture=\$\"MSIL\$\"$\"=hex(7):74,
00,43,00,64,00,24,00,5e,00,4b,00,32,00,6a,00,64,00,3f,00,2c,00,50,00,47,00,
45,00,43,00,4d,00,43,00,59,00,7a,00,52,00,53,00,6d,00,61,00,72,00,74,00,6f,
00,6f,00,6c,00,58,00,3e,00,76,00,7a,00,6c,00,72,00,2d,00,40,00,6b,00,37,00,
29,00,3f,00,55,00,25,00,40,00,4f,00,2c,00,56,00,72,00,6a,00,34,00,48,00,00,
00,00,00"
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "\Device\0000003f.Raw" 010000000f000000ffffffff0000000001000000020300000900000009000000ffffffff
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Configuration Data" ffffffffffffffff0000000002000000050000000c00000000000000000000008000ff0300003f00fe000100050000001000 0000000000000000000000000c0000ce000000000f0000000100
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Pci" 4802000000000000000000000000000000000000000000000000000001000000010001001100000000010000000000000000 0000000000000000010000000000ffffffff00000000080100000000000000000000000000000005000000000000ffff0000 000000000801000000000000000000000000000040010000000000007f010000000000000801000000000000000000000000 00000002000000000000ff020000000000000801000000000000000000000000000000030000000000006f03000000000000 0801000000000000000000000000000078030000000000007a0300000000000008010000000000000000000000000000e802 000000000000ff0200000000000008010000000000000000000000000000f001000000000000f80100000000000008010000 000000000000000000000000b003000000000000cf0300000000000008010000000000000000000000000000e80300000000 0000ff0300000000000008010000000000000000000000000000ce01000000000000cf010000000000000801000000000000 00000000000000000001000000000000ff03000000000000000300000000000000000000000000000000100000000000ffff ffff000000000803000000000000000000000000000000000f0000000000ffff0f0000000000080300000000000000000000 000000000000080000000000ffff0b0000000000080300000000000000000000000000000000080000000000ffff0f000000 0000080300000000000000000000000000000000080000000000ffffbfff00000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "LastInstallTime" d61a3e7af8c4c901
WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "FeatureSet" 0xa0033fff
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "1" "\$\"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE\$\" /e"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "2" "\$\"C:\Program Files\Paint.NET\PaintDotNet.exe\$\" \$\"%1\$\""
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "3" "\$\"C:\Program Files\Paint.NET\PaintDotNet.exe\$\" \$\"print:%1\$\""
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "4" "C:\Program Files\Paint.NET\PaintDotNet.exe"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Path" "C:\Program Files\Paint.NET"
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Component Information" 00000000000000000000000000000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "WMVFile"
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Command" 2500530079007300740065006d0052006f006f00740025005c00730079007300740065006d00330032005c00720075006e00 64006c006c00330032002e0065007800650020002500530079007300740065006d0052006f006f00740025005c0073007900 7300740065006d00330032005c00730079006e006300750069002e0064006c006c002c004200720069006500660063006100 730065005f004300720065006100740065002000250032002100640021002000250031000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "SystemBiosVersion" 47004200540020002000200020002d0020003400320033003000320065003300310000004100770061007200640020004d00 6f00640075006c00610072002000420049004f0053002000760036002e00300030005000470000000000
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "$\"SmartoolX.BaseAddin,Version" "\$\"8.0.2632.25087\$\",Culture=\$\"neutral\$\",FileVersion=\$\"8.0.2632.25087\$\",ProcessorArchitec ture=\$\"MSIL\$\"$\"=hex(7):74,
00,43,00,64,00,24,00,5e,00,4b,00,32,00,6a,00,64,00,3f,00,2c,00,50,00,47,00,
45,00,43,00,4d,00,43,00,59,00,7a,00,52,00,53,00,6d,00,61,00,72,00,74,00,6f,
00,6f,00,6c,00,58,00,3e,00,76,00,7a,00,6c,00,72,00,2d,00,40,00,6b,00,37,00,
29,00,3f,00,55,00,25,00,40,00,4f,00,2c,00,56,00,72,00,6a,00,34,00,48,00,00,
00,00,00"
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "\Device\0000003f.Raw" 010000000f000000ffffffff0000000001000000020300000900000009000000ffffffff
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Configuration Data" ffffffffffffffff0000000002000000050000000c00000000000000000000008000ff0300003f00fe000100050000001000 0000000000000000000000000c0000ce000000000f0000000100
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Pci" 4802000000000000000000000000000000000000000000000000000001000000010001001100000000010000000000000000 0000000000000000010000000000ffffffff00000000080100000000000000000000000000000005000000000000ffff0000 000000000801000000000000000000000000000040010000000000007f010000000000000801000000000000000000000000 00000002000000000000ff020000000000000801000000000000000000000000000000030000000000006f03000000000000 0801000000000000000000000000000078030000000000007a0300000000000008010000000000000000000000000000e802 000000000000ff0200000000000008010000000000000000000000000000f001000000000000f80100000000000008010000 000000000000000000000000b003000000000000cf0300000000000008010000000000000000000000000000e80300000000 0000ff0300000000000008010000000000000000000000000000ce01000000000000cf010000000000000801000000000000 00000000000000000001000000000000ff03000000000000000300000000000000000000000000000000100000000000ffff ffff000000000803000000000000000000000000000000000f0000000000ffff0f0000000000080300000000000000000000 000000000000080000000000ffff0b0000000000080300000000000000000000000000000000080000000000ffff0f000000 0000080300000000000000000000000000000000080000000000ffffbfff00000000
WriteRegBin HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "LastInstallTime" d61a3e7af8c4c901
WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "FeatureSet" 0xa0033fff
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "1" "\$\"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE\$\" /e"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "2" "\$\"C:\Program Files\Paint.NET\PaintDotNet.exe\$\" \$\"%1\$\""
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "3" "\$\"C:\Program Files\Paint.NET\PaintDotNet.exe\$\" \$\"print:%1\$\""
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "4" "C:\Program Files\Paint.NET\PaintDotNet.exe"
WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\My Program\System" "Path" "C:\Program Files\Paint.NET"
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\My Program"

############################### reg2nsis end #################################

Мож и не стоит изобретать велосипед-то ? Reg2Nsis utility мои потребности, например, удовлетворяет.

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

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

Отправлено: 20:44, 05-07-2009 | #165


Ветеран


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

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


Цитата hb860:
Мож и не стоит изобретать велосипед-то ? »
Спасибо, я про неё не знал , а в "Полезные ссылки", я и не заглядывал...
Извините, вопрос снят.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 20:53, 05-07-2009 | #166


Аватара для onis

Старожил


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

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


Здравствуйте форумчане. Я только начал разбираться с программой дайте ответ на 2 вопроса
1, как запустить установленное приложения после установки.
2, как интегрировать файл реестровый файл когда идет установка
Заранее спасибо

Отправлено: 01:01, 21-07-2009 | #167


Аватара для hb860

Идиот


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

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


onis, именно реестровый файл так:
Код: Выделить весь код
ExecWait "regedit.exe /S $\"$OUTDIR\lines98.reg$\""
А ещё его можно сконвертить в код NSIS, и впихнуть прям в инсталятор. Но лично мне лень, и я часто делаю так, как написал выше, хотя это и "дурной тон"

Чтобы запустить установленное приложение в конце установки, читаем справку:
Цитата:
MUI_FINISHPAGE_RUN exe_file
Application which the user can select to run using a checkbox. You don't need to put quotes around the filename when it contains spaces.

MUI_FINISHPAGE_RUN_TEXT text
Texts to display next to the 'Run program' checkbox.

MUI_FINISHPAGE_RUN_PARAMETERS parameters
Parameters for the application to run. Don't forget to escape double quotes in the value (use $\").

MUI_FINISHPAGE_RUN_NOTCHECKED
Do not check the 'Run program' checkbox by default

MUI_FINISHPAGE_RUN_FUNCTION function
Call a function instead of executing an application (define MUI_FINISHPAGE_RUN without parameters). You can use the function to execute multiple applications or you can change the checkbox name and use it for other things.
Пример можно поглядеть тут: c:\Program Files\NSIS\Examples\makensis.nsi
Вот оттуда код:
Код: Выделить весь код
!define MUI_FINISHPAGE_LINK "Visit the NSIS site for the latest news, FAQs and support"
!define MUI_FINISHPAGE_LINK_LOCATION "http://nsis.sf.net/"

!define MUI_FINISHPAGE_RUN "$INSTDIR\NSIS.exe"
Помоему, более чем достаточно. Заодно ссылочку воткнете на свой сайт или сайт производителя

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

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

Отправлено: 18:44, 21-07-2009 | #168


Аватара для onis

Старожил


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

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


hb860, Большое спасибо

Отправлено: 19:13, 21-07-2009 | #169


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


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

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


Порадую вас кодом проги Roof Builder
ее сайт www.roof-builder.ru

Код: Выделить весь код
/*
*/
!define PRODUCT_NAME "Roof Builder"
!define PRODUCT_VERSION "3.00.69.00"
!define PRODUCT_PUBLISHER "MDinc"
!define PRODUCT_WEB_SITE "http://www.roof-builder.ru"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\roof.exe"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define PRODUCT_USERRB_ROOT_KEY "HKCU"
!define PRODUCT_RB_KEY "Software\VB and VBA Program Settings\${PRODUCT_NAME}"
!define PRODUCT_RB_DIR "..\..\Roof_Builder_2.85"

VIProductVersion "${PRODUCT_VERSION}"

!define PRODUCT_DAO_DIR_KEY "Microsoft Shared\DAO"
var PRODUCT_DAO_OK

;!define /date MyTIMESTAMP "%Y/%m/%d %H:%M:%S"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
;Name "roof"
OutFile "RBinstall.exe"
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""

;!ifdef NSIS_LZMA_COMPRESS_WHOLE
;SetCompressor zlib
;!else
;SetCompressor /SOLID lzma
;!endif

SetCompress Auto
SetCompressor /SOLID lzma
SetCompressorDictSize 32
SetDatablockOptimize on     ; - оптимизация блока данных

; MUI 1.67 compatible ------
!include "MUI.nsh"
!define MUI_UI "LA_ui.exe" #файл интерфейса

!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange-r-nsis.bmp"
!define MUI_HEADERIMAGE_RIGHT

; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"

; Language Selection Dialog Settings
!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

; Welcome page
!define MUI_WELCOMEFINISHPAGE_BITMAP  "nsis\Roof-Builder-box_nsis_forma_cad.bmp"
!define MUI_WELCOMEPAGE_TITLE_3LINES
!insertmacro MUI_PAGE_WELCOME
; License page
;!insertmacro MUI_PAGE_LICENSE "${PRODUCT_RB_DIR}\doc\lic.txt"
!insertmacro MUI_PAGE_COMPONENTS
;!define MUI_COMPONENTSPAGE_SMALLDESC

; Directory page
var SHC_DESCTOP
var SHC_START
var SHC_ASS

!define MUI_PAGE_CUSTOMFUNCTION_LEAVE "CheckButtonsState1" #определяем статус кнопок
function CheckButtonsState1
FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1052 #верхняя кнопка
SendMessage $R0 0x00F2 0 0 $R0 #$R0=0 - если не выбрано
StrCpy $SHC_DESCTOP "$R0" #переменная $SHC_DESCTOP используется в инсталляторе для ярлыка на Рабочий стол

FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1053 #средняя кнопка
SendMessage $R0 0x00F2 0 0 $R0
StrCpy $SHC_START "$R0" #переменная $SHC_START используется в инсталляторе для ярлыка в меню Пуск

FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1054 #нижняя кнопка
SendMessage $R0 0x00F2 0 0 $R0
StrCpy $SHC_ASS "$R0" #переменная $SHC_ASS используется в инсталляторе для ассоциаций с файлами
functionend

!define MUI_PAGE_CUSTOMFUNCTION_SHOW "ChangeButtonsCaption1"
function ChangeButtonsCaption1 #подписи к кнопкам
FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1052
SendMessage $R0 0x00F1 1 0 #по умолчанию выбрано
SendMessage $R0 0xC 0 "STR:$(DeskSh)"

FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1053
SendMessage $R0 0x00F1 1 0 #по умолчанию выбрано
SendMessage $R0 0xC 0 "STR:$(StMenuSh)"

FindWindow $R1 "#32770" "" $HWNDPARENT
GetDlgItem $R0 $R1 1054
StrCmp $9 "1" +2 #$9 берется из on.Init при установке поверх эта кнопка будет не выбрана
SendMessage $R0 0x00F1 1 0 #выбрано по умолчанию. Если поверх - то перескакивает - и не выбрано.
SendMessage $R0 0xC 0 "STR:$(AssocFiles)"
functionend

!insertmacro MUI_PAGE_DIRECTORY

; Instfiles page
!insertmacro MUI_PAGE_INSTFILES

; Finish page
!define MUI_FINISHPAGE_RUN "$INSTDIR\roof.exe"
!define MUI_FINISHPAGE_LINK $(Site)
!define MUI_FINISHPAGE_LINK_LOCATION "http://www.roof-builder.ru"
;!define MUI_CUSTOMFUNCTION_GUIINIT onGUIInit

!insertmacro MUI_PAGE_FINISH

; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES

; MUI end ------

; Language files
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Lithuanian"

VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Roof Builder"
VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "Roof Builder is a complex decision for the calculation of roof sheets."
VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "MDinc"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalTrademarks" "MDinc"
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© MDinc"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Roof Builder is a complex decision for the calculation of roof sheets."
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${PRODUCT_VERSION}"

ShowInstDetails show
ShowUnInstDetails show

;кнопки на странице с выбором Пути
LangString DeskSh ${LANG_ENGLISH} "Desktop shortcut"
LangString DeskSh ${LANG_RUSSIAN} "Ярлык на Рабочий стол"
LangString DeskSh ${LANG_LITHUANIAN} "Nuoroda i darbalauki"

LangString StMenuSh ${LANG_ENGLISH} "Start Menu shortcut"
LangString StMenuSh ${LANG_RUSSIAN} "Ярлык в меню Пуск"
LangString StMenuSh ${LANG_LITHUANIAN} "Nuoroda i Start meniu"

LangString AssocFiles ${LANG_ENGLISH} "Associate with files"
LangString AssocFiles ${LANG_RUSSIAN} "Ассоциировать файлы .rfd и .rbp с программой"
LangString AssocFiles ${LANG_LITHUANIAN} "Asocijuoti su failais"

;на последней странице инсталлятора название ссылки
LangString Site ${LANG_ENGLISH} "Visit Roof Builder Website - www.roofbuilder.net"
LangString Site ${LANG_RUSSIAN} "Посетить сайт программы - www.roof-builder.ru"
LangString Site ${LANG_LITHUANIAN} "Aplankyti programos tinklapi - www.roofbuilder.net"

;LangString Previous ${LANG_ENGLISH} "Configuration file was found.$\nWarning! Configuration from previous version of ${PRODUCT_NAME} may not be be right for new version.$\nDo you want update file?"
;LangString Previous ${LANG_RUSSIAN} "Найдена предыдущая установка программы.$\nВнимание! Текущая версия программы может не корректно работать со старой конфигурацией.$\nОбновить или пропустить?"
;LangString Previous ${LANG_LITHUANIAN} "Si programos versija jau buvo idegta.$\nDemesio! Instaliuojama programos versija su senu konfiguravimu gali dirbti su klaidom.$\nAtnaujinti ar praleisti?"

LangString UninstSuccess ${LANG_ENGLISH} "$(^Name) was successfully removed from your computer."
LangString UninstSuccess ${LANG_RUSSIAN} "Деинсталяция программы $(^Name) успешна завершена."
LangString UninstSuccess ${LANG_LITHUANIAN} "Programos deinstaliacija $(^Name) sekmingai uzbaigta."

;Удаление
LangString Uninstall ${LANG_ENGLISH} "Remove Roof Builder."
LangString Uninstall ${LANG_RUSSIAN} "Удалить программу."
LangString Uninstall ${LANG_LITHUANIAN} "Pasalinti programa."

LangString UnInit ${LANG_ENGLISH} "Are you sure you want to completely remove $(^Name) and all of its components?"
LangString UnInit ${LANG_RUSSIAN} "Вы действительно хотите удалить $(^Name) и все ее компоненты?"
LangString UnInit ${LANG_LITHUANIAN} "Jus tikrai norite pasalinti $(^Name) visus programos komponentus?"

BrandingText /TRIMRIGHT "  ${PRODUCT_NAME} v${PRODUCT_VERSION}   "

var SELECT_LNG

Function .onInit
  
  !insertmacro MUI_LANGDLL_DISPLAY
  StrCpy $SELECT_LNG 9
  
  ;Call CloseRB
  ;Sleep 100
  
  ;Call SysLang
  ;Pop "$SELECT_LNG" ; Variable (for language name)
  
  ; Check to see if already installed
  ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString"
  IfFileExists $R0 +1 NotInstalled
  MessageBox MB_YESNO "${PRODUCT_NAME} is apparently already installed. Are you want to unistall it?" /SD IDYES IDNO dontinstall
  Exec $R0
  Quit
  dontinstall:
 
NotInstalled:

  ;Banner::show /NOUNLOAD "Checking for DAO..."
  ;Banner::destroy

  StrCpy $PRODUCT_DAO_OK 0

  IfFileExists "$COMMONFILES\${PRODUCT_DAO_DIR_KEY}\DAO360.DLL" 0 isdao

	StrCpy $R0 "$COMMONFILES\${PRODUCT_DAO_DIR_KEY}\DAO360.DLL"
	Push $R0
	Call CheckDllVersion
	Pop $R0

	${If} $R0  >= 3.60
		;MessageBox MB_ICONEXCLAMATION  "$0 < 3.60"
		;Call ConnectInternet ;Make an internet connection (if no connection available)
		;StrCpy $2 "$TEMP\MDAC.exe"
		;NSISdl::download http://download.microsoft.com/download/c/f/2/cf2b5cd9-7ffd-4c19-971f-9ccaf0b57d48/MDAC_TYP.EXE $2
		;Pop $0
		;StrCmp $0 success success
		;SetDetailsView show
		;DetailPrint "download failed: $0"
		;Abort
		;success:
		;SetDetailsView show
		;ExecWait '"$2"'
		;Delete $2
		;Abort
		;DetailPrint "DAO360.DLL"
		StrCpy "$PRODUCT_DAO_OK" 1
	${EndIf}
  isdao:
FunctionEnd

;   StrCpy $R0 "$COMMONFILES\${PRODUCT_DAO_DIR_KEY}\DAO360.DLL"
;   Push $R0
;   Call CheckDllVersion
;   Pop $R0
;
Function CheckDllVersion
Exch $0
Push $1
GetDllVersion $0 $R1 $R2
IntOp $R3 $R1 / 0x00010000
IntOp $R4 $R1 & 0x0000FFFF
;IntOp $R5 $R2 / 0x00010000
;IntOp $R6 $R2 & 0x0000FFFF
StrCpy $0 $R3.$R4
Pop $1
Exch $0
FunctionEnd

;Function CheckRegKey
;Exch $0
;Push $1
;ReadRegStr $0 HKLM "Software\MyProgram" "SetupPath"
;IfErrors 0 noerror
;DetailPrint "Ключ не существует!"
;Goto EndCheck
;noerror:
;DetailPrint "Ключ существует, значение SetupPath=$0"
;EndCheck:
;FunctionEnd

## Set the hyperlink up.
;Function onGUIInit
; BrandingURL::Set /NOUNLOAD "0" "200" "0" "http://www.roof-builder.ru"
;FunctionEnd

;function RenameFile
;  Push $R0
;
;  IfFileExists $R0 0 +2
;
;  Rename $R0 $R0.
;
;  StrCpy $R0 1
;  Exch $R0
;functionend

;Function ConnectInternet
;
;  Push $R0
;
;    ClearErrors
;    Dialer::AttemptConnect
;    IfErrors noie3
;
;    Pop $R0
;    StrCmp $R0 "online" connected
;      MessageBox MB_OK|MB_ICONSTOP "Cannot connect to the internet."
;      Quit
;
;    noie3:
;
;    ; IE3 not installed
;    MessageBox MB_OK|MB_ICONINFORMATION "Please connect to the internet now."
;
;    connected:
;
;  Pop $R0
;
;FunctionEnd

;ExecWait '"$INSTDIR\myprog.exe"'
;!include Library.nsh

AutoCloseWindow false
ShowInstDetails show
InstProgressFlags smooth

InstType "Full Install"
InstType "Standart"


Section "!Main" SEC01
  SectionIn 1 2 3 RO

  SetDateSave on

  ;
  ; CHECK PREVIOUS INSTALLATION
  ;
  StrCpy $0 0
  loop:
  EnumRegKey $1 ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}" $0
  StrCmp $1 "" done
  IntOp $0 $0 + 1

	;StrCmp $1 "REG" miss
	;DetailPrint "Delete ${PRODUCT_RB_KEY}\$1"

	StrCpy $2 0
	loopv:
	ClearErrors
	EnumRegValue $3 ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}\$1" $2
	IfErrors donev
	IntOp $2 $2 + 1
	;StrCmp $3 "" donev
	StrCmp $3 "firminfo" loopv
	StrCmp $3 "fimname" loopv
	DetailPrint "Delete ${PRODUCT_RB_KEY}\$1\$3"
	DeleteRegValue ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}\$1" "$3"
	goto loopv
	donev:

	DetailPrint "Delete ${PRODUCT_RB_KEY}\$1"
	DeleteRegKey ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}\$1"
	;miss:

  goto loop
  done:

  DeleteRegKey ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}"

  ;StrCpy $0 0
  ;EnumRegKey $1 HKLM "Software\${PRODUCT_NAME}" $0
  ;StrCmp $1 "" done1
  ;IntOp $0 $0 + 1  
  ;WriteRegStr HKLM "Software\${PRODUCT_NAME}" "" ""
  ;done1: 
  
  AccessControl::GrantOnRegKey HKLM "Software\${PRODUCT_NAME}" "(BU)" "FullAccess" 

  ;
  ; Main
  ;
  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer

  IfFileExists "$INSTDIR\roof.exe" 0 +1
  Delete "$INSTDIR\roof.exe"
  File "${PRODUCT_RB_DIR}\roof.exe"

  ;
  ; LNG
  ;
  CreateDirectory "$INSTDIR\lng"
  SetOutPath "$INSTDIR\lng"
  SetOverwrite on
  file "${PRODUCT_RB_DIR}\lng\Russian.lng"

  ;
  ; PLUGINS
  ;
  ;IfFileExists "$INSTDIR\plugins\CalcList.dll" "" +2
  ;Rename "$INSTDIR\plugins\CalcList.dll" "$INSTDIR\plugins\CalcList.dll.backup"

  ;CreateDirectory "$INSTDIR\plugins"
  ;SetOutPath "$INSTDIR\plugins"
  ;file "${PRODUCT_RB_DIR}\plugins\CalcList.dll"

  ;
  ; MDB
  ;
  ;IfFileExists "$INSTDIR\cfg\materials.mdb" IsConfigFile
  ;UpdateConfigFile:
  ; Обновление реестра
  WriteRegStr ${PRODUCT_USERRB_ROOT_KEY} "${PRODUCT_RB_KEY}\main" "mdbcofigfile" "$INSTDIR\cfg\materials.mdb"
  ; Удаление файла конфигурации
  IfFileExists "$INSTDIR\cfg\materials.mdb" +1
  Delete "$INSTDIR\cfg\materials.mdb"
  ;CreateDirectory "$INSTDIR\cfg"
  ;SetOutPath "$INSTDIR\cfg"
  ;file "${PRODUCT_RB_DIR}\cfg\materials.mdb"
  ;goto UpdateConfigFileSuccess
  ;IsConfigFile:
  ;MessageBox MB_YESNO|MB_ICONEXCLAMATION  $(Previous) IDYES UpdateConfigFile
  ;UpdateConfigFileSuccess:

  ;
  ; OCX
  ;
  SetOutPath "$INSTDIR"
  SetOverwrite on
  ;ifnewer
  
  file "${PRODUCT_RB_DIR}\ocx\SplitterModern\SplitterModern.ocx"
  RegDLL "$INSTDIR\SplitterModern.ocx"
  file "${PRODUCT_RB_DIR}\ocx\FrameMinus\FrameHide.ocx"
  RegDLL "$INSTDIR\FrameHide.ocx"
  file "${PRODUCT_RB_DIR}\ocx\SuperRuler 1.0\acSR.ocx"
  RegDLL "$INSTDIR\acSR.ocx"
  

  ;
  ; DAO
  ;
  ${If} $PRODUCT_DAO_OK == 0
	 SetOutPath "$COMMONFILES\${PRODUCT_DAO_DIR_KEY}"
	 SetOverwrite ifnewer
	 file "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
	 RegDLL "$COMMONFILES\${PRODUCT_DAO_DIR_KEY}\dao360.dll"
  ${EndIf}
  
  ;SetOutPath "$INSTDIR"
  ;SetOverwrite ifdiff
 
  ;
  ; DLL
  ;
   
  
  CreateDirectory "$INSTDIR\data"
  AccessControl::GrantOnFile "$INSTDIR\data" "(BU)" "FullAccess"
  
  CreateDirectory "$INSTDIR\tmp"
  AccessControl::GrantOnFile "$INSTDIR\tmp" "(BU)" "FullAccess"
   
  SetOverwrite on
  
  ;
  ; DLL
  ;
  file "${PRODUCT_RB_DIR}\rb_loc.dll"
  
  ;
  ; TLB
  ;
  
  file "${PRODUCT_RB_DIR}\gdi+.tlb"
  ;
  ; DLL VB6
  ;
  file "${PRODUCT_RB_DIR}\FileMan.dll"
  RegDLL "$INSTDIR\FileMan.dll"
  file "h:\PROJECTs\VB6\VB6\SUBCLALSSING\iSubclass dll SelfSub 2.1\SelfSub 2.1\Samples\cSubclass\iSubclass version\iSubclass.dll"
  RegDLL "$INSTDIR\iSubclass.dll"
  

  StrCmp $SHC_DESCTOP "0" nodesk
  CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\roof.exe" "" "" "" "" "" "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  nodesk:

  StrCmp $SHC_START "0" nostart
  CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\roof.exe"
  nostart:

SectionEnd

Section "Config Base" SEC06
  SectionIn 1
  
  CreateDirectory "$INSTDIR\cfg"
  
  AccessControl::GrantOnFile "$INSTDIR\cfg" "(BU)" "FullAccess"

  SetOutPath "$INSTDIR\cfg"
  SetOverwrite on
  file "${PRODUCT_RB_DIR}\cfg\materials.mdb"
  
SectionEnd

Section "VB6 Libraryes" SEC05
  SectionIn 1 2
  ;VB6
  SetOutPath "$SYSDIR"
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_comdlg32
    File "C:\windows\SYSTEM32\comdlg32.ocx"
    RegDLL "$SYSDIR\comdlg32.ocx"
  skip_comdlg32:
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_Msvbvm60
    File "C:\windows\SYSTEM32\Msvbvm60.dll"
    RegDLL "$SYSDIR\Msvbvm60.dll"
  skip_Msvbvm60:
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_MSCOMCTL
    File "C:\windows\SYSTEM32\MSCOMCTL.OCX"
    RegDLL "$SYSDIR\MSCOMCTL.OCX"
  skip_MSCOMCTL:
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_MSCOMCT2
    File "C:\windows\SYSTEM32\MSCOMCT2.OCX"
    RegDLL "$SYSDIR\MSCOMCT2.OCX"
  skip_MSCOMCT2:
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_STDOLE2
    File "C:\windows\SYSTEM32\STDOLE2.TLB"
    RegDLL "$SYSDIR\STDOLE2.TLB"
  skip_STDOLE2:
  
  IfFileExists "$SYSDIR\STDOLE2.TLB" 0 skip_VB6
    File "C:\windows\SYSTEM32\VB6.OLB"
  skip_VB6:

SectionEnd

SubSection "Language pkg" SecLNG
Section /o "Lithuania pkg" SEC03
  SectionIn 1

  SetOutPath "$INSTDIR\lng"
  SetOverwrite on
  file "${PRODUCT_RB_DIR}\lng\Lithuania.lng"
  
SectionEnd

Section /o "English pkg" SEC04
  SectionIn 1

  SetOutPath "$INSTDIR\lng"
  SetOverwrite on
  file "${PRODUCT_RB_DIR}\lng\English.lng"
  
SectionEnd
SubSectionEnd

Section  "-Calculation libraryes" SEC02 # /o ! -
  ;SectionIn 1

  ;IfFileExists "$INSTDIR\plugins\CalcListAdvanced.dll" "" +2
  ;Rename "$INSTDIR\plugins\CalcListAdvanced.dll" "$INSTDIR\plugins\CalcListAdvanced.dll.backup"

  SetOutPath "$INSTDIR\plugins"
  SetOverwrite on
  ;file "${PRODUCT_RB_DIR}\plugins\CalcListCProject.dll"
  file "${PRODUCT_RB_DIR}\plugins\CalcList.dll"
  ;RegDLL "$INSTDIR\plugins\CalcList_cp_w.dll"
  
  ;SetOutPath "$SYSDIR"  
  ;SetOverwrite on
  
  Delete "$SYSDIR\advcalcdll.dll"
  
  SetOutPath "$INSTDIR"
  SetOverwrite on
  file "${PRODUCT_RB_DIR}\advcalcdll.dll"
  
  ; MS VC
  file "H:\PROJECTs\CP\cdll\msvcp71.dll"
  file "H:\PROJECTs\CP\cdll\msvcr71.dll"
  SectionEnd

;Section /o "Manual" SEC04
;  SectionIn 1
;  SetOutPath "$INSTDIR"
;  file /r "${PRODUCT_RB_DIR}\Doc"
;SectionEnd

LangString DESC_SEC01 ${LANG_RUSSIAN} "Основная програма со всеми настройками."
;LangString DESC_SEC02 ${LANG_RUSSIAN} "Добавочные библиотеки расчета."
LangString DESC_SEC03 ${LANG_RUSSIAN} "Локализационые файлы."
LangString DESC_SecLNG ${LANG_RUSSIAN} "Локализационые файлы."
;LangString DESC_SEC04 ${LANG_RUSSIAN} "Файлы документации."
LangString DESC_SEC05 ${LANG_RUSSIAN} "Основные библиотечные файлы."
LangString DESC_SEC06 ${LANG_RUSSIAN} "Конфигурационный файл."

LangString DESC_SEC01 ${LANG_ENGLISH} "Main program's files"
;LangString DESC_SEC02 ${LANG_ENGLISH} "Calculation`s library's."
LangString DESC_SEC03 ${LANG_ENGLISH} "Main localisation's files."
LangString DESC_SecLNG ${LANG_ENGLISH} "Main localisation's files."
;LangString DESC_SEC04 ${LANG_ENGLISH} "Manual."
LangString DESC_SEC05 ${LANG_ENGLISH} "Main library's files."
LangString DESC_SEC06 ${LANG_ENGLISH} "Main base config file."

LangString DESC_SEC01 ${LANG_LITHUANIAN} "Pagrindine programa su visais nustatymais."
;LangString DESC_SEC02 ${LANG_LITHUANIAN} "Papildomos skaciavimo bibliotekos."
LangString DESC_SEC03 ${LANG_LITHUANIAN} "Lokalizuoti failai."
LangString DESC_SecLNG ${LANG_LITHUANIAN} "Lokalizuoti failai."
;LangString DESC_SEC04 ${LANG_LITHUANIAN} "Dokumentacijos failai."
LangString DESC_SEC05 ${LANG_LITHUANIAN} "Pagrindiniai bibliotekos failai."
LangString DESC_SEC06 ${LANG_LITHUANIAN} "Main base config file."


!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $(DESC_SEC01)
  ;!insertmacro MUI_DESCRIPTION_TEXT ${SEC02} $(DESC_SEC02)
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $(DESC_SEC03)
  !insertmacro MUI_DESCRIPTION_TEXT ${SecLNG} $(DESC_SecLNG)
  ;!insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $(DESC_SEC04)
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $(DESC_SEC05)
  !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $(DESC_SEC06)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Section -AdditionalIcons
  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"

  StrCmp $SHC_START "0" nostart
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
  CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"
  nostart:
SectionEnd

Section -Post
  WriteUninstaller "$INSTDIR\uninst.exe"
  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\roof.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\roof.exe"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"

  WriteRegStr "${PRODUCT_USERRB_ROOT_KEY}" "${PRODUCT_RB_KEY}\Main" "CurrentLanguage" 25

  ;Call Build_md5
  ;Pop $0
  ;DetailPrint "md5: [$0]"
  ;Delete "${PRODUCT_RB_DIR}\md5dll.dll"

  StrCmp $SHC_ASS "0" noassociation
  ExecWait '$INSTDIR\roof.exe /a'
  noassociation:

  ;Поиск ватермарка ROOF BUILDER 2880000000000000000 <> 3ed0f8b8558388fef8e57b9d25eb2e00
  ;SetDetailsPrint none
  ;ExecWait '$INSTDIR\Update.exe -f "$INSTDIR\roof.exe" -s "620923383e86370de5db9c98622101c6" -r "$0"'
  ;SetDetailsPrint both

SectionEnd

;Function Build_md5
# generate MD5sum of file
  ;md5dll::GetMD5File "$INSTDIR\PM.dll"
  ;Pop $0
;FunctionEnd

Function un.InitializeUnistall
  Push $5
  loop:
    FindWindow $5 "Roof Builder"
    IntCmp $5 0 done
    SendMessage $5 16 0 0
    Sleep 100
    Goto loop
  done:
  Pop $5
FunctionEnd

Function un.onUninstSuccess
  HideWindow
  MessageBox MB_ICONINFORMATION|MB_OK $(UninstSuccess)
FunctionEnd

Function un.onInit
!insertmacro MUI_UNGETLANGUAGE
  Call un.InitializeUnistall
  Sleep 100
  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 $(UnInit) IDYES +2
  Abort
FunctionEnd

Section Uninstall
  
  SetShellVarContext all

  ExecWait "$INSTDIR\roof.exe /una"

  ;
  ; OCX
  ;
  UnRegDLL "$INSTDIR\SplitterModern.ocx"
  Delete "$INSTDIR\SplitterModern.ocx"
  UnRegDLL "$INSTDIR\FrameHide.ocx"
  Delete "$INSTDIR\FrameHide.ocx"
  UnRegDLL "$INSTDIR\acSR.ocx"
  Delete "$INSTDIR\acSR.ocx"
  
  ;
  ; DLL
  ;
  UnRegDLL "$INSTDIR\FileMan.dll"
  UnRegDLL "$INSTDIR\iSubclass.dll"

  RMDir "$SMPROGRAMS\${PRODUCT_NAME}"
  RMDir /r "$INSTDIR\plugins\*.*"
  RMDir /r "$INSTDIR\lng\*.*"
  RMDir /r "$INSTDIR\tmp\*.*"
  
  Delete "$INSTDIR\roof.exe"
  Delete "$INSTDIR\advcalcdll.dll"
  Delete "$INSTDIR\msvcp71.dll"
  Delete "$INSTDIR\msvcr71.dll"
  Delete "$INSTDIR\FileMan.dll"
  Delete "$INSTDIR\iSubclass.dll"
  Delete "$INSTDIR\rb_loc.dll"
  Delete "$INSTDIR\uninst.exe"
  
  ;
  ; TLB
  ;
  Delete "$INSTDIR\gdi+.tlb"
  ;Delete "$INSTDIR\Roof Builder"
  
  
  ;DeleteRegKey HKLM "Software\${PRODUCT_NAME}"

  Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"
  Delete "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk"
  Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
  Delete "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk"

  DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  SetAutoClose true
SectionEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:27, 22-07-2009 | #170



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




 
Переход