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

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

 

Аватара для hb860

Идиот


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

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


Цитата dracosha:
Я Вас еще буду мучать что бы Вы мне помогли разобраться с добавлением окон и при этом буду просить что бы Вы мне помогли нарисовать или изменить положение деталей в этих окнах »
Я закончил статью, NSIS. NSIS. Создаем собственные страницы инсталлятора. Я надеюсь, этот материал поможет кому-то.
dracosha, задавайте вопросы. Слушаем.

Уважаемые модераторы, попрошу не рассматривать мои публикации как рекламу ресурса. В случае необходимости, я готов перепостить информацию на сайт Oszone или даже прямо в этот форум. Просто сообщите мне об этом, я и учту все рекомендации

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

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

Отправлено: 23:38, 22-01-2010 | #321



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

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


Аватара для Painkiller

Ветеран


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


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

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


K.A.V. ,hb860 , изменю свой вопрос. Как сделать чтобы в названии секции с компонентами было указано ещё и количество выбранных компонентов?

-------
http://wiki.oszone.net/images/0/03/UserbarAAA4.gif


UpdatePack 7 для интеграции обновлений в образ Windows 7 SP1 [X86\64]

UpdatePack 8.1 для интеграции обновлений в образ Windows 8.1 [X86\64]

UpdatePack 10 для интеграции обновлений в образ Windows 10 [X86\64]


Отправлено: 02:59, 23-01-2010 | #322


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

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


Contributor


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

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


Цитата Painkiller:
K.A.V. ,hb860 , изменю свой вопрос. Как сделать чтобы в названии секции с компонентами было указано ещё и количество выбранных компонентов? »
В функции onSelChange прописать команды на перечисление статусов секций командами SectionGetFlags, в самом конце прописываем команду SectionSetText, где указываем количество подсчитанных отмеченных секций
Если не понятно, объянснил, то могу код сделать
Сейчас сделаю


читать дальше »
Код: Выделить весь код
SubSection /e "Компоненты для установки" subSec
Section /o "test1" section1
SectionEnd

Section /o "test2" section2
SectionEnd

Section /o "test3" section3
SectionEnd

Section /o "test4" section4
SectionEnd

Section /o "test5" section5

SectionEnd
Section /o "test6" section6

SectionEnd
SubSectionEnd


 Function .onSelChange
 Strcpy $0 0
  SectionGetFlags ${section1} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionGetFlags ${section2} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionGetFlags ${section3} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionGetFlags ${section4} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionGetFlags ${section5} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionGetFlags ${section6} $1
StrCmp $1 "1" 0 +2
IntOp $0 $0 + 1

  SectionSetText ${subSec} "Компоненты для установки (Выбрано $0)"
 FunctionEnd

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

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

Отправлено: 03:30, 23-01-2010 | #323


Аватара для dracosha

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


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

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


Вот еще возникло 3 вопроса...

Вопрос 1
Вобщем есть страничка лицензии
!insertmacro MUI_PAGE_LICENSE "files\LicenseRU.rtf"
а у меня еще есть файл лицензии LicenseEN.rtf
И если пользователь выбрал аннглийский язык, то мне очень хотелось бы чтоб ему отобразился текст из LicenseEN.rtf

Вопрос 2
Получается что какой бы язык пользователь не выбрал при инсталяции, в любом случае будет копировться файлик с русским языком... И если этот файлик копируется то при запуске прога будет запускаться на русском языке. Как бы сделать так что бы при выборе русского языка копировался файл с русским языком, а при выборе английского языка чтоб ничего не копировалось?

Вопрос 3
В скрипт добавил вот такую функцию: (зы взял код отсюда )
Код: Выделить весь код
Function .onInit
SetOutPath $TEMP
File /oname=spl.bmp "files\splash.bmp"
advsplash::show 1500 2500 250 -1 $TEMP\spl
Pop $0
Delete $TEMP\spl.bmp
FunctionEnd
Вобщем можно ли сделать заставку что бы отображались картинки с прозрачностью? Например png-шки

Дайте плиз примерчики на это дело.

Цитата hb860:
dracosha, задавайте вопросы. Слушаем. »
Уважаемый hb860, мне очень помогли Ваши практические примеры... Особенно 3 первых примера...
К сожалению в 4-м примере для меня все оказалось очень сложно. Наверное потаму что я не знаю ниодного языка програмирования...
Я очень хочу изменить страничку !insertmacro MUI_PAGE_COMPONENTS
И хочу что бы она выглядела вот так:

Если Вас не затруднит помогите мне пожалуйста с этим.
И ко всему этому я хочу добавить еще одну точно такую же страничку но на ней уже будут не компоненты а настройки. Правда там точно так же будут копироваться файлы как и в компонентах. Т.е. пользователь поставил птичку значит копироваться, нет значит не копироваться.

Если у Вас возникло сомнение или вопрос зачем еще одно такое же окно если там тоже будут копироваться файлы...
Дело в том что настройки - это инифайлы, которые при запуске проги автоматически будут удаляться... А точнее прога при первом запуске подхватит все настройки которые прописаны в ини и сразу же их удалит.

Последний раз редактировалось dracosha, 23-01-2010 в 17:49.


Отправлено: 15:11, 23-01-2010 | #324


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


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

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


Здраствуйте, K.A.V. Я задавал вопрос о трех деинсталляторах. Вы мне предложили следущий код:
читать дальше »
Section "Sec1" Sec1
...
WriteUninstaller "$INSTDIR\Sec1\uninstall.exe"
SectionEnd

Section "Sec2" Sec2
...
WriteUninstaller "$INSTDIR\Sec2\uninstall.exe"
SectionEnd

Section "Sec3" Sec3
...
WriteUninstaller "$INSTDIR\Sec3\uninstall.exe"
SectionEnd



!include "FileFunc.nsh"
Section Uninstall
${GetParent} "$EXEPATH" $R0
StrCmp $R0 "$INSTDIR\Sec1" 0 +2
call UnInstall_SEC1

StrCmp $R0 "$INSTDIR\Sec2" 0 +2
call UnInstall_SEC2

StrCmp $R0 "$INSTDIR\Sec3" 0 +2
call UnInstall_SEC3

SetAutoClose true
SectionEnd


Function UnInstall_SEC1
...
FunctionEnd

Function UnInstall_SEC2
...
FunctionEnd

Function UnInstall_SEC3
...
FunctionEnd

Но 3 последних функции не вызываются.
Проверил значение $EXEPATH. Там совсем не тот путь: C:\Users\836D~1\AppData\Local\Temp\~nsu.tmp
То есть условие не срабатывает((((

Отправлено: 19:37, 23-01-2010 | #325


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

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


Contributor


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

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


Цитата dracosha:
Вопрос 1
Вобщем есть страничка лицензии
!insertmacro MUI_PAGE_LICENSE "files\LicenseRU.rtf"
а у меня еще есть файл лицензии LicenseEN.rtf
И если пользователь выбрал аннглийский язык, то мне очень хотелось бы чтоб ему отобразился текст из LicenseEN.rtf
читать дальше »
Код: Выделить весь код
!insertmacro MUI_PAGE_WELCOME
Page license
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

  !insertmacro MUI_LANGUAGE "Russian"
  !insertmacro MUI_LANGUAGE "English"

LicenseLangString myLicenseData ${LANG_ENGLISH} "English_license_file.txt"
LicenseLangString myLicenseData ${LANG_RUSSIAN} "Russian_license_file.txt"
LicenseData $(myLicenseData)



Цитата dracosha:
Вопрос 2
Получается что какой бы язык пользователь не выбрал при инсталяции, в любом случае будет копировться файлик с русским языком... И если этот файлик копируется то при запуске прога будет запускаться на русском языке. Как бы сделать так что бы при выборе русского языка копировался файл с русским языком, а при выборе английского языка чтоб ничего не копировалось?
читать дальше »

Про какой файл идёт речь? Про любой?
Вот пример команды копирования файла, копирование происходит, если пользователь выбрал русский язык
Код: Выделить весь код
StrCmp $Language "1049" 0 +2
CopyFiles "$Windir\test.exe" "$Temp"



Цитата dracosha:
Вобщем можно ли сделать заставку что бы отображались картинки с прозрачностью? Например png-шки
Не получится, тип файла это дело плагина, возможны только BMP файлы, да и прозрачность там такая что...
В коде вашего примера, за прозрачный цвет отвечает 4-ый параметр, т.е. -1, необходимо заменить "-1" на HEX значение прозрачного цвета, например, при указании 0xFFFFFF, за прозрачный цвет будет белый


Цитата dracosha:
Я очень хочу изменить страничку !insertmacro MUI_PAGE_COMPONENTS
Необходимо с помощью редактора ресурсов (напр. ResHacker) изменить ресурс 104 в файле MUI диалогов (обычно это \Program Files\NSIS\Contrib\UIs\modern.exe)


Цитата dracosha:
И ко всему этому я хочу добавить еще одну точно такую же страничку но на ней уже будут не компоненты а настройки
Таким вопросом не задавался, да и нужды не было, в двух страничках с компонентами
А сам скрипт вам не позволит две разные COMPONENTS странички, если вы пропишите дважды данную команду, у вас просто продублируется данный диалог...
С группами и галочками (но без описания) можно сделать такой диалог при помощи плагина EmbeddedLists


Цитата NoName01.cpp:
Здраствуйте, K.A.V. Я задавал вопрос о трех деинсталляторах. Вы мне предложили следущий код:
...
Но 3 последних функции не вызываются.
Проверил значение $EXEPATH. Там совсем не тот путь: C:\Users\836D~1\AppData\Local\Temp\~nsu.tmp
То есть условие не срабатывает((((
Простите, ошибся, не тестировал и написал "на скорую руку"
Правильно будет так:
читать дальше »

Код: Выделить весь код
Section "Sec1" Sec1
#...
Strcpy $R9 $INSTDIR
strcpy $INSTDIR "$INSTDIR\Sec1"
WriteUninstaller "$INSTDIR\uninstall.exe"
strcpy $INSTDIR "$R9"
SectionEnd

Section "Sec3" Sec2
#...
Strcpy $R9 $INSTDIR
strcpy $INSTDIR "$INSTDIR\Sec2"
WriteUninstaller "$INSTDIR\uninstall.exe"
strcpy $INSTDIR "$R9"
SectionEnd

Section "Sec3" Sec3
#...
Strcpy $R9 $INSTDIR
strcpy $INSTDIR "$INSTDIR\Sec3"
WriteUninstaller "$INSTDIR\uninstall.exe"
strcpy $INSTDIR "$R9"
SectionEnd


Section Uninstall
${GetParent} "$INSTDIR\uninstall.exe" $R0
${GetParent} "$R0" $R0

StrCmp $INSTDIR "$R0\Sec1" 0 +2
call un.UnInstall_SEC1

StrCmp $INSTDIR "$R0\Sec2" 0 +2
call un.UnInstall_SEC2

StrCmp $INSTDIR "$R0\Sec3" 0 +2
call un.UnInstall_SEC3

  SetAutoClose true
SectionEnd


Function un.UnInstall_SEC1
#...
FunctionEnd

Function un.UnInstall_SEC2
#...
FunctionEnd

Function un.UnInstall_SEC3
#...
FunctionEnd
Я хотел бы объяснить код, т.к. первый раз сталкиваюсь с созданием 3-х Деинсталляторов
После тестов, было выяснено, что невозможно вычислить директорию, где расположен файл деинсталлятора, только с помощью переменной $INSTDIR, поэтому, в секциях установки, мы сначала сохраняем значение переменной в переменную $R9, назначаем переменной $INSTDIR путь расположения компонента, создаём деинсталлятор с изменённой переменной (это очень важно), после создания деинсталлятора восстанавливаем значение переменной $INSTDIR

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


Последний раз редактировалось K.A.V., 23-01-2010 в 23:20. Причина: Сори NoName01.cpp опять ошибочка, исправил :)

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

Отправлено: 23:14, 23-01-2010 | #326


Аватара для dracosha

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


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

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


Цитата K.A.V.:
Про какой файл идёт речь? Про любой?
Вот пример команды копирования файла, копирование происходит, если пользователь выбрал русский язык
Код:
StrCmp $Language "1049" 0 +2
CopyFiles "$Windir\test.exe" "$Temp" »
Я так понимаю этот код я должен был засунуть в функции?
Если так то меня все таки это немного не устраивает... Дело в том что файл копируется еще до выбора папки куда устанавливать прогу (копируется конешно же в указанную папку по умолчанию).
Может есть какое-то другое решение?
Цитата K.A.V.:
Необходимо с помощью редактора ресурсов (напр. ResHacker) изменить ресурс 104 в файле MUI диалогов (обычно это \Program Files\NSIS\Contrib\UIs\modern.exe) »
Спасибо большое... Даже и не представлял что эти окна лежат где-то в ресурсах.

Последний раз редактировалось dracosha, 24-01-2010 в 01:50.


Отправлено: 01:39, 24-01-2010 | #327


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

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


Contributor


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

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


Цитата dracosha:
Если так то меня все таки это немного не устраивает... Дело в том что файл копируется еще до выбора папки куда устанавливать прогу (копируется конешно же в указанную папку по умолчанию).
Может есть какое-то другое решение? »
Я честно сказать, не могу понять вашу цель, вашу задачу, объясните грамотно, что нужно сделать?

Какие вопросы задаёте, такие ответы и получаете

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


Отправлено: 01:50, 24-01-2010 | #328


Аватара для dracosha

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


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

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


Цитата K.A.V.:
Я честно сказать, не могу понять вашу цель, вашу задачу, объясните грамотно, что нужно сделать? »
Сори! Попробую еще разок
Вобщем вот тестовый скрипт:
читать дальше »
Код: Выделить весь код
SetCompressor /SOLID lzma
RequestExecutionLevel admin
SetOverwrite on

!define PRODUCT_NAME "Super Proga"
InstallDir "$PROGRAMFILES\Super Proga"

!include "MUI2.nsh"

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "files\LicenseRU.rtf"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_RESERVEFILE_LANGDLL

Section  $(NameSec0) Section0
SectionIn RO
   SetOutPath "$INSTDIR\"
   File "file1.dll"
   File "file2.dll"
SectionEnd

Section $(NameSec1) Section1
   SetOutPath "$INSTDIR\folder"
   File "file3.dll"
SectionEnd

Section $(NameSec2) Section2
   SetOutPath "$INSTDIR\folder"
   File "file4.dll"
SectionEnd

и т.д.

Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY

StrCmp $Language "1049" 0 +2
CopyFiles "files\russian.lng" "$INSTDIR\"

SetOutPath $TEMP
File /oname=spl.bmp "files\splash.bmp"
advsplash::show 1500 2500 250 0xFFFFFF $TEMP\spl
Pop $0
Delete $TEMP\spl.bmp
FunctionEnd


Вобщем когда запускается инсталятор, то сразу после заставки (вобщем в самом начале) файл russian.lng копируется в папку по умолчанию... Тут же возникает вопрос... А если пользователь выберет другой путь для установки программы (MUI_PAGE_DIRECTORY)? При тестировании я собственно так и сделал... И в той папке которую я выбрал, файла russian.lng естественно не оказалось. Вобщем мне нужно что бы файл копировался туда куда пользователь решит.

Цитата K.A.V.:
Не получится, тип файла это дело плагина, возможны только BMP файлы, да и прозрачность там такая что...
В коде вашего примера, за прозрачный цвет отвечает 4-ый параметр, т.е. -1, необходимо заменить "-1" на HEX значение прозрачного цвета, например, при указании 0xFFFFFF, за прозрачный цвет будет белый »
сделал свой файлик splash.bmp с прозрачностью
-1 изменил 0xFFFFFF
получилось вот так:
advsplash::show 1500 2500 250 0xFFFFFF $TEMP\spl
скомпилил
но вместо прозрачного выводится черный цвет
0xFFFFFF изменил на 0
получилось вот так:
advsplash::show 1500 2500 250 0 $TEMP\spl
теперь прозрачность есть, но фрагменты изображения на которых изпользуется прозрачность цвета не выводятся с прозрачностью... И в итоге картинка получается не совсем мягкая по бокам
Я думаю что есть таки плагины которые позволяют вставлять прозрачные картинки типа png?
K.A.V., может подскажете какой-нить русский ресурс с кучей плагинов для nsis?

Последний раз редактировалось dracosha, 24-01-2010 в 14:51.


Отправлено: 14:15, 24-01-2010 | #329


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

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


Contributor


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

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


Вам нужно поместить данную команду в секцию, а не в функцию, которая выполняется при запуске инсталлятора, пример кода:
Код: Выделить весь код
Section -post
StrCmp $Language "1049" 0 +2
CopyFiles "files\russian.lng" "$INSTDIR\"
SectionEnd
Данная секция скрыта, она будет выполняться

Цитата dracosha:
Я думаю что есть таки плагины которые позволяют вставлять прозрачные картинки?
K.A.V., может подскажете какой-нить русский ресурс с кучей плагинов для nsis? »
Есть ещё плагин NewAdvSplash, но он мало чем отличается...
Русскоязычный только nsis.narod.ru, только он не обновляется уже давно и там нет ничего полезного (по крайней мере для меня)...

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

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

Отправлено: 15:32, 24-01-2010 | #330



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




 
Переход