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

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

 

Аватара для alexfinik

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


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

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


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

Цель хотелки: сделать так, чтобы на экране отображались радиокнопки где можно было выбрать нужный архив и разархивировать его. Если со второй частью вроде понятки есть в голове, типа создать цикл и засунуть туда радиокнопку... а может я и неправ, но вот с первой частью - облазал всё, то ли запрос неверно составляю... в справке по locate в т.ч. на русском не нашел как выделить файл, имя которого не известно, из папки.

Спасибо! Надеюсь на ответ!

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


Отправлено: 20:00, 23-07-2013 | #421



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

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


Аватара для Krinkels

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


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

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


ИМХО это проще на Си/С++ реализовать. Получается ищем в определенной папке файлы, выводим их на экран в виде списка, далее формируем строку для распаковки и запускаем её. И я бы вместо радиокнопок сделал бы листбокс, красивее выглядит
Такое можно и на NSIS но это уже к гуру

-------
Рок моя честь, а моя честь моя жизнь. krinkels.org


Отправлено: 23:19, 23-07-2013 | #422


Аватара для kotkovets

Ветеран


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

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


Цитата alexfinik:
в справке по locate в т.ч. на русском не нашел как выделить файл, имя которого не известно, из папки »
плохо читали.. архивы обычно с расширением *.zip, *.rar, *.7z
ну так и задавайте поиск по этой маске..
Цитата alexfinik:
типа создать цикл »
в locate тоже цикл.. простая математика:
Код: Выделить весь код
Intop $0 $0 + 1
с каждым циклом переменная $0 возрастает на единицу, следовательно в цикле мы узнаем сколько архивов найдено,
естественно с помощью плага заносим в массив.

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


Отправлено: 23:34, 23-07-2013 | #423


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


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

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


Может кто-нибудь сталкивался с задачкой, когда нужно заблокировать вторую (третью, четвертую и т.д) копию запущенного инсталлятора, пока не будет завершена первая?

Отправлено: 20:54, 30-07-2013 | #424


Старожил


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

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


Цитата Николай М.:
Может кто-нибудь сталкивался с задачкой, когда нужно заблокировать вторую (третью, четвертую и т.д) копию запущенного инсталлятора, пока не будет завершена первая? »
В спарвке есть статья kotkovets, Предотвращение множественности запуска:

Код: Выделить весь код
!include "MUI2.nsh"
!include "LogicLib.nsh"

!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

ShowInstDetails show
OutFile "Mutex.exe"
Name "CreateMutex"
Caption "CreateMutex test"

Function .OnInit
 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "$(^Name)") i .r1 ?e'
 Pop $R0
 ${IfNot} $R0 == 0
   MessageBox MB_OK|MB_ICONEXCLAMATION "Одна копия $(^Name) уже выполняется."
   Abort
 ${EndIf}
FunctionEnd

Section
SectionEnd

Отправлено: 11:08, 31-07-2013 | #425


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


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

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


Второй день, как пытаюсь освоить NSIS (v2.46, Win7(x64)Ru) и, сразу же застрял, казалось бы, на ровном месте.
Не могу настроить отображение описаний компонентов, вернее одного, при деинсталяции. Не подскажете, что не так?
Грабли

; Installer Sections

Section "$(PROGRUS)" SecRUS
SetOutPath "$INSTDIR"
File "1.txt"
SectionEnd

Section "$(PROGUKR)" SecUKR
SetOutPath "$INSTDIR"
File "2.txt"
SectionEnd

;--------------------------------
;Uninstaller Section
Section "Un.$(locUN)" SecUN
delete "$INSTDIR\1.txt"
delete "$INSTDIR\2.txt"
delete "$INSTDIR\label1_ru.bmp"
delete "$INSTDIR\label1_ukr.bmp"
delete "$INSTDIR\Uninstall.exe"
DeleteRegKey /ifempty HKLM "Software\UITest\Option"
SectionEnd

; Текст описания Install
LangString DESC_PROGRUS ${LANG_RUSSIAN} "Русская версия программы"
LangString DESC_PROGRUS ${LANG_UKRAINIAN} "Російська версія програми"
LangString DESC_PROGUKR ${LANG_RUSSIAN} "Украинская версия программы"
LangString DESC_PROGUKR ${LANG_UKRAINIAN} "Українська версія програми"
; Текст названия Install
LangString PROGRUS ${LANG_RUSSIAN} "Русская версия"
LangString PROGRUS ${LANG_UKRAINIAN} "Російська версія"
LangString PROGUKR ${LANG_RUSSIAN} "Украинская версия"
LangString PROGUKR ${LANG_UKRAINIAN} "Українська версія"
; Это все отображается
; Текст описания Uninstall
LangString DESC_UNIN ${LANG_RUSSIAN} "Удалить локализованную версию и восстановить английский язык программы"
LangString DESC_UNIN ${LANG_UKRAINIAN} "Видалити локалізовану версію та відновити англійську мову програми"
; Эти описания не отображаются

; Текст названия Uninstall
LangString locUN ${LANG_RUSSIAN} "Отменить локализацию"
LangString locUN ${LANG_UKRAINIAN} "Скасувати локалізацію"
; Эти описания отображаются

; Макрос, который показывает текст описания секции
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecRUS} $(DESC_PROGRUS)
!insertmacro MUI_DESCRIPTION_TEXT ${SecUKR} $(DESC_PROGUKR)
!insertmacro MUI_DESCRIPTION_TEXT ${SecUN} $(DESC_UNIN) ; НЕ РАБОТАЕТ!!!
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Отправлено: 02:32, 03-08-2013 | #426


Аватара для kotkovets

Ветеран


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

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


Kopejkin, нормальный скрипт в студию..

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


Отправлено: 11:44, 03-08-2013 | #427


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


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

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


В скрипте много "мусора", который используется для запоминания и пояснения (для меня), а также кусков чужих скриптов.
читать дальше »

Код: Выделить весь код
;--------------------------------
; Подключаем библиотеку «современного» интерфейса пользователя: Modern UI
; Команда !include позволяет включить в тело скрипта файл (у нас - MUI2.nsh,
; который трактуется компилятором так, как будто бы он является текстом скрипта.

!include "MUI2.nsh"

;--------------------------------
; Задаем степень и режим сжатия исходных файлов. Командная опция /SOLID
; указывает компилятору поместить все сжимаемые данные в один блок,
; тем самым еще больше увеличив степень сжатия файлов инсталлятора.

SetCompressor /SOLID lzma

;--------------------------------
;Задаем перечень констант
;ABCD_EFRTX – имя константы, "Xxxx" — её значение.

; Имя приложения
!define PRODUCT_NAME "UITest"

; Версия приложения
!define PRODUCT_VERSION "1.0"

; Папка, где будут храниться исходные файлы, подлежащие сжатию.
!define pkgdir "d:\package"

; Запоминаем язык установки InstallerLanguage
!define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
!define MUI_LANGDLL_REGISTRY_KEY "Software\UITest\Option"
!define MUI_LANGDLL_REGISTRY_VALUENAME "InstallerLanguage"

; Указываем отображать картинку в заголовках страниц (кроме WELCOME)
!define MUI_HEADERIMAGE ; По умолчанию исп. nsis.bmp
  ;Указываем, где лежит файл нужной вам картинки (если нужно)
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"

; Настраиваем интерфейс. Константа MUI_ABORTWARNING определяет, выдавать ли
; предупреждение при закрытии инсталятора пользователем. Типа: «Вы действительно
; хотите прервать установку ..бла бла » с кнопками «да» и «нет».

!define MUI_ABORTWARNING

; Константой MUI_ICON определяем значок инсталятора. Без константы исп. modern-install.ico:
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico"

; Константой MUI_UNICON определяем значок деинсталятора. Без констант исп. modern-uninstall.ico:
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-colorful.ico"

; Если вам вообще не нужны описания секций и компонентов, можете отключить их,
; задав пустую константу:
   ;!define MUI_COMPONENTSPAGE_NODESC  ; Расположить её нужно в начале скрипта
; инсталлятора, но ПЕРЕД вызовом макроса MUI_PAGE_COMPONENTS.
; Или можете переместить описание секций ПОД полем выбора компонентов,
; аналогично примеру выше, но константу НАДО определить:

!define MUI_COMPONENTSPAGE_SMALLDESC

; Для отображения описания СПРАВА поля компонентов (по умолчанию) НИЧЕГО не дописывать.

;--------------------------------------------------------------------------------
; Определяем страницы инсталлятора, которые будут видны конечному пользователю.
; Макросы вызываются из MUI2.nsh.
; Станицы установки:

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "$(License)"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES

; Страницы удаления:
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_COMPONENTS
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH

; Указываем доступные языки инсталяции:
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Ukrainian"

!insertmacro MUI_RESERVEFILE_LANGDLL  ; что это такое????

; Предоставляем пользователю при запуске инсталятора выбрать язык установки:
; - Русский или Украинский. Язык запроса выбора - Английский.
; Это - функция инсталяции

Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY
;!undef MUI_ICON                                 ; что это ???
;!define MUI_ICON         "uninstall.ico"        ; что это ???
FunctionEnd
;--------------------------------------------------------------------
;Указываем деинсталлятору использовать язык инсталлятора
;Это - функция деинсталяции

Function un.onInit
  !insertmacro MUI_UNGETLANGUAGE
FunctionEnd

;--------------------------------------------------------------------
; Текст внизу окон (вместо nullsoft bla-bla
BrandingText "KOPEJKIN"

; Назначаем инсталлятору заголовок, отражающий его назначение. Используем константы.
; Команда Name задает название кнопки инсталлятора на панели задач.

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"

; Команда Caption задает заголовок окна инсталятора
   ;Caption "Локализация ${PRODUCT_NAME} ${PRODUCT_VERSION}"
; В мультиязычном инсталляторе будем использовать модифицированный текст,
; предоставляемый языковыми файлами инсталлятора. Поэтому для команды Name
; можно использовать константы команды Caption, а её не использовать?

;--------------------------------------------------------------------
; Задаем папку установки по умолчанию. Макрос MUI_PAGE_DIRECTORY работает с системной
; переменной  $INSTDIR, т.е. читает её значение перед отображением страницы
; пользователю и записывает в неё путь к папке, выбранной пользователем ПОСЛЕ
; закрытия этой страницы. Чтобы на этой странице показать пользователю путь к папке
; по умолчанию, необходимо задать начальное значение $INSTDIR специальной командой InstallDir.

InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"

; Можно получить путь к папке установки из реестра, если доступно
InstallDirRegKey HKCU "Software\UITest" ""

; Задаем имя файла нашего инсталлятора командой OutFile. Можно использовать
; константы, или вписать что угодно самостоятельно.
OutFile "${PRODUCT_NAME}.${PRODUCT_VERSION}.exe"  ; Получится: UITest.1.0.exe

; Для новых ОС (Vista, Windows 7/8) можно запросить права пользователя ???
RequestExecutionLevel user

; Указываем режим отображения хода выполнения инсталляции (протокола).
; Наш случай: (ничего не пишем) - протокол скрыт, и появляется только при нажатии кнопки
; «Детали». Возможные значения: hide, show и nevershow. По умолчанию - hide;
; nevershow отключает и вышеупомянутую кнопку, show — показывает все.
  ;ShowInstDetails show

; Организация возможности выбора пользователем желаемых компонентов реализуется
; макросом страницы MUI_PAGE_COMPONENTS.

;--------------------------------
;Reserve Files
  
  ;If you are using solid compression, files that are required before
  ;the actual installation should be stored first in the data block,
  ;because this will make your installer start faster.
;--------------------------------
; Installer Sections

Section "$(PROGRUS)" SecRUS
  SetOutPath "$INSTDIR"
  File "1.txt"
SectionEnd

Section "$(PROGUKR)" SecUKR
  SetOutPath "$INSTDIR"
  File "2.txt"
SectionEnd
  
  ;Function .onSelChange
  ;!insertmacro StartRadioButtons $1
  ;!insertmacro RadioButton ${firstsec}
  ;!insertmacro RadioButton ${secondsec}
  ;!insertmacro EndRadioButtons
  ;FunctionEnd
; При использовании этих макросов для секций пишет, что должно быть не более 3 параметров. 
; А у меня выходит 4 (Разбираться)

; Ниже: Ещё не разбирался. В таком виде файлы картинок устанавливаются! с учетом выбранного 
; языка установки, но только при повторном запуске программы установки.

Section ;$(Install)
SectionIn 1

   SetOutPath "$INSTDIR"
  
  ;ADD YOUR OWN FILES HERE...
  ;File "1.txt"
  ;File "2.txt"
  ;Store installation folder
  ;WriteRegStr HKLM "Software\UITest" "" $INSTDIR
; RU-EN section
            ReadRegStr $R0 HKLM "Software\UITest\Option" "InstallerLanguage"
            StrCmp $R0 "1049" RussianLanguage
            StrCmp $R0 "1058" UkrainianLanguage
            goto NotRightLanguage
        RussianLanguage:
            File "label1_ru.bmp"
            goto NotRightLanguage

        UkrainianLanguage:
            File "label1_ukr.bmp"
            goto NotRightLanguage

        NotRightLanguage:
  ;Create uninstaller
  WriteUninstaller "$INSTDIR\Uninstall.exe"

SectionEnd

; Ниже: Относится к секции RU-EN. Появляется сообщение с кнопкой ОК
Section "-Hide"
            ReadRegStr $R0 HKLM "Software\UITest\Option" "InstallerLanguage"
            StrCmp $R0 "1049" RussianLanguage
            StrCmp $R0 "1058" UkrainianLanguage
            goto NotRightLanguage
        RussianLanguage:
           MessageBox MB_OK "Установка русского рисунка"
            goto NotRightLanguage

        UkrainianLanguage:
           MessageBox MB_OK "Установка украинского рисунка"
            goto NotRightLanguage

        NotRightLanguage:

SectionEnd

;--------------------------------
;Uninstall Section

Section "Un.$(locUN)" SecUN
  delete "$INSTDIR\1.txt"
  delete "$INSTDIR\2.txt"
  delete "$INSTDIR\label1_ru.bmp"
  delete "$INSTDIR\label1_ukr.bmp"
  delete "$INSTDIR\Uninstall.exe"
  DeleteRegKey /ifempty HKLM "Software\UITest\Option"
  ;RMDir "$INSTDIR"
SectionEnd

;----------------------------------------------------------------
; Файлы с текстом Лицензионного соглашения на разных языках
LicenseLangString License ${LANG_RUSSIAN} "lic_rus.txt"
LicenseLangString License ${LANG_UKRAINIAN} "lic_ukr.txt"
   
; Текст описания секции Install
LangString DESC_PROGRUS ${LANG_RUSSIAN} "Русская версия программы"
LangString DESC_PROGRUS ${LANG_UKRAINIAN} "Російська версія програми"
LangString DESC_PROGUKR ${LANG_RUSSIAN} "Украинская версия программы"
LangString DESC_PROGUKR ${LANG_UKRAINIAN} "Українська версія програми"
; Текст названия секции Install
LangString PROGRUS ${LANG_RUSSIAN} "Русская версия"
LangString PROGRUS ${LANG_UKRAINIAN} "Російська версія"
LangString PROGUKR ${LANG_RUSSIAN} "Украинская версия"
LangString PROGUKR ${LANG_UKRAINIAN} "Українська версія"

; Текст описания секции Uninstall
LangString DESC_UNIN ${LANG_RUSSIAN} "Удалить локализованную версию и восстановить английский язык программы."
LangString DESC_UNIN ${LANG_UKRAINIAN} "Видалити локалізовану версію та відновити англійську мову програми."
; Текст названия секции Uninstall
LangString locUN ${LANG_RUSSIAN} "Отменить локализацию"
LangString locUN ${LANG_UKRAINIAN} "Скасувати локалізацію"

; -ИСПРАВЛЕНО- Макрос, который показывает текст описания секции Install
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
   !insertmacro MUI_DESCRIPTION_TEXT ${SecRUS} $(DESC_PROGRUS)
   !insertmacro MUI_DESCRIPTION_TEXT ${SecUKR} $(DESC_PROGUKR)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

; -ИСПРАВЛЕНО- Макрос, который показывает текст описания секции Uninstall
!insertmacro MUI_UnFUNCTION_DESCRIPTION_BEGIN
   !insertmacro MUI_DESCRIPTION_TEXT ${SecUN} $(DESC_UNIN)
!insertmacro MUI_UnFUNCTION_DESCRIPTION_END

; Ниже: Пока не знаю для чего это.
;LangString LNG_BMP1 ${LANG_UKRAINIAN} "label1_ukr.bmp"
;LangString LNG_BMP1 ${LANG_RUSSIAN} "label1_ru.bmp"

Последний раз редактировалось Kopejkin, 03-08-2013 в 16:08.


Отправлено: 12:27, 03-08-2013 | #428


Аватара для kotkovets

Ветеран


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

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


Kopejkin,
Для секций удаления применяется тот же макрос, но с приставкой Un
Код: Выделить весь код
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecRUS} $(DESC_PROGRUS)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecUKR} $(DESC_PROGUKR)
 !insertmacro MUI_UnFUNCTION_DESCRIPTION_END

 !insertmacro MUI_UnFUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecUN} $(DESC_UNIN)
 !insertmacro MUI_UnFUNCTION_DESCRIPTION_END
Про LangString
-----
p.s
Скрипт выделяется и заключается в тег: #
невозможно по-человечески прочитать...

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


Последний раз редактировалось kotkovets, 03-08-2013 в 13:58.

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

Отправлено: 13:53, 03-08-2013 | #429


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


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

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


Спасибо kotkovets.
Сообщение отредактировал.

Отправлено: 15:37, 03-08-2013 | #430



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




 
Переход