Добавление текста в завершенный диалог установщика NSIS - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь добавить текст или добавить дополнительный диалог в конце установщика NSIS.Итак, чтобы уточнить, когда установка успешно завершена, я хочу показать некоторую информацию.

enter image description here

Я видел различные примеры, которые касаются его, нони один из них, похоже, на самом деле не представляет решение.

У кого-нибудь есть какая-нибудь информация, которая может помочь?

1 Ответ

1 голос
/ 08 марта 2019

Вы уже используете многоязыковой интерфейс пользователя, поэтому вы можете просто настроить текст конечной страницы в соответствии со своими потребностями:

!include MUI2.nsh
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_TITLE "Custom title"
!define MUI_FINISHPAGE_TITLE_3LINES
!define MUI_FINISHPAGE_TEXT "Custom text blah blah blah$\r$\nblah blah blah$\r$\nblah blah blah$\r$\nblah blah blah$\r$\nblah blah blah$\r$\n"
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English

И если это неприемлемо по какой-либо причине, вы можете создать полностью настраиваемую страницу:

!include MUI2.nsh
!insertmacro MUI_PAGE_INSTFILES
AutoCloseWindow True ; Automatically move on from the InstFiles page
Page Custom MyFinishPageCreate
!insertmacro MUI_LANGUAGE English

!include nsDialogs.nsh

Function MyFinishPageCreate
!ifdef MUI_SYSVERSION
!insertmacro MUI_HEADER_TEXT "Title" "Sub-title"
!endif
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 0 100% 12u "Blah blah blah"
Pop $0
${NSD_CreateLabel} 0 30u 100% -30u "More blah blah blah"
Pop $0
nsDialogs::Show
FunctionEnd

Если вы хотите отобразить текст непосредственно на странице InstFiles, вам нужно создать элемент управления меткой вручную:

!include LogicLib.nsh
!include nsDialogs.nsh
!include WinMessages.nsh

Page InstFiles "" InstFilesShow

Var MyText
Function InstFilesShow
; Cannot use CreateWindowEx in a Section, must do it in the show callback
FindWindow $1 "#32770" "" $HWNDPARENT # Finds the inner dialog
System::Call 'USER32::CreateWindowEx(i${__NSD_Label_EXSTYLE},t "${__NSD_Label_CLASS}",t "Text goes here",i${__NSD_Label_STYLE},i10,i100,i300,i200,p$1,p0,p0,p0)p.s'
Pop $MyText
ShowWindow $MyText 0
SendMessage $1 ${WM_GETFONT} 0 0 $2
SendMessage $MyText ${WM_SETFONT} $2 1
FunctionEnd

Section
${IfNot} ${Abort}
    ShowWindow $MyText 1
${EndIf}
SectionEnd
...