【问题标题】:Customizing an exsisting NSIS MUI2 page自定义现有的 NSIS MUI2 页面
【发布时间】:2011-09-25 17:51:34
【问题描述】:

我已成功添加一个复选框到 nsis 安装程序的完成页面,使用 MUI 在完成页面中定义 MUI_PAGE_CUSTOMFUNCTION_PRE 和 MUI_PAGE_CUSTOMFUNCTION_SHOW 的功能。

但如果我包含MUI2 而不是MUI,则不会显示该复选框。我想MUI2 与MUI 在这方面有些不同。我找不到这方面的文档,如果有人知道,我可以知道吗???

谢谢

【问题讨论】:

    标签: checkbox nsis nsis-mui


    【解决方案1】:

    MUI1 将 InstallOptions 用于 Welcome 和 Finish 页面,MUI2 使用 nsDialogs。

    这记录在MUI2 readme:

    欢迎页面和完成页面没有 更长的实现使用 安装选项。相反,新 使用nsDialogs插件。 nsDialogs 允许您创建自定义页面或 直接从自定义现有页面 脚本。

    编辑: 使用 show 回调中的 nsDialogs 命令自定义页面:

    var Checkbox
    
    Function MyFinishShow
    ${NSD_CreateCheckbox} 120u 110u 100% 10u "&Something"
    Pop $Checkbox
    SetCtlColors $Checkbox "" "ffffff"
    FunctionEnd
    
    Function MyFinishLeave
    ${NSD_GetState} $Checkbox $0
    ${If} $0 <> 0
        MessageBox mb_ok "Custom checkbox was checked..."
    ${EndIf}
    FunctionEnd
    
    !define MUI_FINISHPAGE_RUN "calc.exe" ;See note after the code...
    !define MUI_PAGE_CUSTOMFUNCTION_SHOW MyFinishShow
    !define MUI_PAGE_CUSTOMFUNCTION_LEAVE MyFinishLeave
    !insertmacro MUI_PAGE_FINISH
    

    或者,如果您没有使用现有的完成页面复选框,您可以将它们用于custom stuff,而无需使用显示回调...

    【讨论】:

    • 感谢您的回答。我在 MUI2 中找到了这些词。我还提到了 Winamp 论坛。 forums.winamp.com/showthread.php?t=314012 准确描述了我的问题,它指的是forums.winamp.com/showthread.php?threadid=310323,它说为完成页面添加自定义页面。但是上面的自述文件说我们可以自定义一个现有的页面......我只是想知道如何实现这一点?谢谢
    • @dia:再次,来自文档“然后,调用显示函数,可用于自定义界面”
    • 我无法让它工作。 Documentation says: "NSD_Create* - 必须存在一个对话框才能使其工作,因此必须在此函数之前调用 nsDialogs::Create。"。
    • @Paul 如果您想使用此答案中的代码,请确保您使用的是 MUI2.nsh
    • @Paul 您链接到的答案包含所有信息。 MUI_UI 是简单的路线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    相关资源
    最近更新 更多