Цитата 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