Как я могу изменить текст в MUI_WELCOME_PAGE при использовании MUI2 для NSIS?
Вопрос
Я хочу добавить этикетку, отображающую полную версию-стринг на экране приветствия в установщике, который я создаю, используя NSIS с MUI2.
Я искал информацию о том, как это сделать, но нашел ссылки только на использование mui_installoptions*, которые я нашел WS устарел для MUI2. Другой ссылался на более новые версии, используя Installoptions* с теми же параметрами, но я не мог заставить его работать. Наконец, я также нашел ссылку на использование NSDialogs для этого - что я использую для своих пользовательских страниц. Однако я не нашел ссылки или образцов о том, как изменить любую из существующих страниц, которые поставляются с mui2.nsh.
Я нашел способ изменить MUI_HeaderText, но это не влияет на приветственный экран. Я бы хотел, чтобы был способ также изменить WelcomeText. Может быть, используя mui_welcometitle и mui_welcomebody или аналогично.
Решение
Существует mui_welcomepage_text, но это полезно только в том случае, если вы хотите изменить весь текст, а не просто добавить что -то.
Во время функции показа для страницы вы можете изменить текст любого элемента управления:
outfile test.exe
requestexecutionlevel user
!include MUI2.nsh
#!define MUI_WELCOMEPAGE_TEXT "New text goes here"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Function MyWelcomeShowCallback
SendMessage $mui.WelcomePage.Text ${WM_SETTEXT} 0 "STR:$(MUI_TEXT_WELCOME_INFO_TEXT)$\n$\nVersion: foo.bar"
FunctionEnd
Section
SectionEnd
.. или добавить новый элемент управления:
outfile test.exe
requestexecutionlevel user
!include MUI2.nsh
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Function MyWelcomeShowCallback
${NSD_CreateLabel} 120u 150u 50% 12u "Version: foo.bar"
Pop $0
SetCtlColors $0 "" "${MUI_BGCOLOR}"
FunctionEnd
Section
SectionEnd