Создать пользовательскую страницу с NSIS - PullRequest
0 голосов
/ 23 апреля 2020

Я бы хотел создать пользовательскую страницу, используя nsis. Просто текст, на разной высоте и, возможно, какое-то изображение. Нечто похожее на то, что делает oracle:

enter image description here

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

;--------------------------------
;Pages

Function CustomPageFunction
  !insertmacro MUI_HEADER_TEXT "TITLE" "SUBTITLE"
FunctionEnd

  !insertmacro MUI_PAGE_WELCOME
  Page custom CustomPageFunction 

Я ищу дополнительные инструкции о том, как создать очень простые c пользовательские страницы установщика, потому что, к сожалению, новая страница с "TITLE" и "SUBTITLE" не отображается после MUI_PAGE_WELCOME, как будто необходимо добавить дополнительные инструкции. Чего мне не хватает?

ОБНОВЛЕНИЕ для установки изображения:

var Image
var ImageHandle

Function CustomPageFunction
; !insertmacro MUI_HEADER_TEXT "TITLE" "SUBTITLE"

nsDialogs::Create 1044
Pop $0

${NSD_CreateBitmap} 0 0 100% 100% ""
Pop $Image
${NSD_SetImage} $Image "C:\Users\User\Desktop\TrickyWays\test.png" $ImageHandle

${NSD_CreateLabel} 0 0 100% 40% "Hello, welcome to nsDialogs!"
Pop $0


nsDialogs::Show
${NSD_FreeImage} $ImageHandle
FunctionEnd

1 Ответ

1 голос
/ 23 апреля 2020

Документация, на которую вы ссылаетесь, говорит только о пользовательских страницах по отношению к тексту заголовка MUI. Есть ... там в функции, где вы должны поместить фактический пользовательский код страницы. Я постараюсь исправить эту часть документации.

Для пользовательской страницы требуется плагин, и наиболее популярным является, вероятно, nsDialogs . Пользовательская страница, которая не вызывает плагин, автоматически пропускается.

!include nsDialogs.nsh
!include mui2.nsh

Function myPageCreate
!insertmacro MUI_HEADER_TEXT "TITLE" "SUBTITLE"

nsDialogs::Create 1018
Pop $0
${If} $0 == error
    Abort
${EndIf}

${NSD_CreateLabel} 0 0 100% 12u "Hello, welcome to nsDialogs!"
Pop $0

${NSD_CreateText} 0 13u 100% -13u "Type something here..."
Pop $0

nsDialogs::Show
FunctionEnd

!insertmacro MUI_PAGE_WELCOME
Page custom myPageCreate 
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE English
...