自定义现有的NSIS MUI2页面

Dul*_*ttu 1 checkbox nsis mui

我已经成功地添加了一个复选框以NSIS安装的完成页面定义功能MUI_PAGE_CUSTOMFUNCTION_PREMUI_PAGE_CUSTOMFUNCTION_SHOW使用完成页MUI.

但如果我包括MUI2而不是MUI,则不会显示复选框.我想有一些不同MUI2MUI相对于这一点.我找不到文件,如果有人知道,我可以知道吗?

谢谢

And*_*ers 7

MUI1对Welcome和Finish页面使用InstallOptions,MUI2使用nsDialogs.

这在MUI2自述文件中有记录:

使用InstallOptions不再实现欢迎页面和完成页面.而是使用新的nsDialogs插件.nsDialogs允许您直接从脚本创建自定义页面或自定义现有页面.

编辑:使用show callback中的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
Run Code Online (Sandbox Code Playgroud)

或者,如果您没有使用现有的完成页面复选框,则可以将这些用于自定义内容,而无需使用show callback ...