【问题标题】:Create custom page with NSIS使用 NSIS 创建自定义页面
【发布时间】:2020-04-23 12:06:18
【问题描述】:

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

来自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

【问题讨论】:

    标签: installation nsis


    【解决方案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
    

    【讨论】:

    • 啊.. 感谢您抽出宝贵的时间。我已经在链接中搜索了“大小”、“字体”和“粗体”的页面以在标签上执行一些样式,但没有关于如何执行此操作的说明。我还尝试使用 NSD_CreateBitmat 和 NSD_SetImage 放置图像。图像不显示。我粘贴了函数代码对不起愚蠢的问题:) 我真的觉得文档很糟糕。
    • 对于字体,请查看主帮助文件中的 CreateFont 和 SetCtlColors。对于图像,您有两个问题:1)您不能使用这样的路径,您需要提取到 $pluginsdir(nsDialogs 自述文件有一个示例)。 2) 您必须使用 .BMP,Windows 在这些控件中对 .PNG 的支持很差。
    • 还有用于创建 nsDialogs 的用户友好的可视化工具:nsis.sourceforge.io/Install_Designer(适用于不了解脚本/编程语法等的人)
    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2010-11-24
    • 2023-04-06
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多