Цитата 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
Если ничего не забыл, то должно работать
