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

Показать сообщение отдельно

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

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


Contributor


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

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


Цитата Kopejkin:
Подскажите, как в инсталляторе отобразить еще одну страничку, не обязательно после странички с лицензионным сообщением, в которой текст из rtf/txt файла будет отображен на том языке, который был выбран в начале установки, т.е. подобно странице лицензии? Создавать кастомную страницу или можно обойтись штатными средствами? »
Можно штатными средствами, но у меня, к примеру, не получается изменить текст в шапке, где пишется "Лицензионное соглашение" и "Прочтите условия соглашения бла бла бла", поэтому в своём креаторе я написал функции по скрытию данного текста при показе файла информации, если устроит такой вариант - пользуйтесь

Цитата Kopejkin:
И еще. Нужно предоставить пользователю возможность запуска программы после её установки на финишной странице инсталлятора. Нюанс в том, что инсталлятор универсальный: для х86/х64. Программа, устанавливаемая на 64-разр. ОС имеет одно имя, а на 32-разр. - другое.
Собственно, разница в именах небольшая, но она есть: WinSnap64.exe и WinSnap.exe? Путь установки по-умолчанию одинаков для систем обеих разрядностей - C:\Program Files\WinSnap.
Может здесь кто-нибудь уже решал подобные проблемы? Ткните носом, пожалуйста? »
Сразу приведу вам весь готовый код ваших хотелок, по отдельности нет желания разжевывать куски кода, поэтому распишу весь код сразу
Код: Выделить весь код
!define MUI_LICENSEPAGE_TEXT_BOTTOM "$(^ClickNext)" ; меняем текст под элементом отображения текста информация (за место инфы о принятии соглашения будет просто "Нажмите кнопку далее")
!define MUI_PAGE_CUSTOMFUNCTION_PRE TextInfoPage ; функция для скрытия двух строк в шапке, об этом я написал в начале своего сообщения
!insertmacro MUI_PAGE_LICENSE "$(infotext)" ; здесь мы указываем, что следует показать файл информации, в зависимости от выбранного языка
!define MUI_PAGE_CUSTOMFUNCTION_PRE TextInfoPage2  ; функция для показа двух строк в шапке, об этом я написал в начале своего сообщения, чтобы на страничке Лицензии данные строки были видны
!insertmacro MUI_PAGE_LICENSE "$(license)" ; здесь мы указываем, что следует показать файл лицензии, в зависимости от выбранного языка

!insertmacro MUI_PAGE_INSTFILES 

!define MUI_FINISHPAGE_RUN ; Добавляем галочку запуска приложения на финишной странице
!define MUI_FINISHPAGE_RUN_TEXT "$(runprogram)" ; текст запуска программы, в зависимости от языка
!define MUI_FINISHPAGE_RUN_FUNCTION RunProgramFunc  ; функция запуска приложения, именно здесь мы решим, какой EXE файл нам необходимо запустить
!insertmacro MUI_PAGE_FINISH ; подключаем финишную страничку 

; ------------
!insertmacro MUI_LANGUAGE "Russian" ; подключаем язык
!insertmacro MUI_LANGUAGE "English"  ; подключаем язык
LicenseLangString infotext ${LANG_RUSSIAN} "C:\Users\APTEM\Desktop\Text_Russian.txt" ; файл с информацией на русском языке
LicenseLangString infotext ${LANG_ENGLISH} "C:\Users\APTEM\Desktop\Text_English.txt"  ; файл с информацией на английском языке

LicenseLangString license ${LANG_RUSSIAN} "C:\Users\APTEM\Desktop\license_Russian.txt"  ; файл с лицензией на английском языке
LicenseLangString license ${LANG_ENGLISH} "C:\Users\APTEM\Desktop\license_English.txt"  ; файл с лицензией на английском языке

LangString runprogram ${LANG_RUSSIAN} "Запустить приложение" ; текст запуска приложения на русском языке
LangString runprogram ${LANG_ENGLISH} "Run program" ; текст запуска приложения на английском языке
Теперь добавим остальные функции:
Функции для скрытия/показа текста в шапке
Код: Выделить весь код
Function TextInfoPage
 GetDlgItem $1 $HWNDPARENT 1037
  ShowWindow $1 0
 GetDlgItem $1 $HWNDPARENT 1038
  ShowWindow $1 0
 GetDlgItem $1 $HWNDPARENT 1
  SendMessage $1 0x000C 0 "STR:$(^NextBtn)" ; этой командой при показе странички информации мы меняем имя кнопки на "Далее"
FunctionEnd

Function TextInfoPage2
 GetDlgItem $1 $HWNDPARENT 1037
  ShowWindow $1 1
 GetDlgItem $1 $HWNDPARENT 1038
  ShowWindow $1 1
FunctionEnd
Функция запуска приложения на финишной страничке в зависимости от разрядности ОС
Код: Выделить весь код
Function RunProgramFunc
var /global IsWow64Process
  System::Call kernel32::GetCurrentProcess()i.s
  System::Call kernel32::IsWow64Process(is,*i.s)
  Pop $IsWow64Process
StrCmp $IsWow64Process "1" 0 +2
 exec "$INSTDIR\MyProgram_x64.exe"
StrCmp $IsWow64Process "0" 0 +2
 exec "$INSTDIR\MyProgram.exe"
FunctionEnd
Если ничего не забыл, то должно работать

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

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

Отправлено: 17:59, 20-02-2014 | #1027