使用NSIS创建自定义页面

问题描述 投票:0回答:1

我想用nsis创建一个自定义页面。只是文字,在不同的高度,可能还有一些图片。类似于oracle的做法。

enter image description here

From the 文档在 "自定义页面" 这就是创建自定义页面的方式。

;--------------------------------
;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
installer nsis
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.