使用NSIS创建自定义页面

时间:2020-04-23 12:06:18

标签: installation nsis

我想使用nsis创建一个自定义页面。只是文字,在不同的高度,甚至还有一些图像。与oracle相似:

enter image description here

docs at "Custom Pages"开始,这是创建自定义页面的方式:

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

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

  !insertmacro MUI_PAGE_WELCOME
  Page custom CustomPageFunction 

我正在寻找有关如何创建非常基本的自定义安装程序页面的指南,因为不幸的是,MUI_PAGE_WELCOME之后没有显示带有“ TITLE”和“ SUBTITLE”的新页面,就好像需要添加额外的说明一样。我想念什么?ž

设置图片的更新:

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 个答案:

答案 0 :(得分:1)

您链接到的文档仅讨论与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