自定义现有的NSIS MUI2页面

时间:2011-06-30 07:04:22

标签: checkbox nsis mui

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

但如果我包含MUI2而不是MUI,则不会显示复选框。我认为MUI2MUI有所不同。如果有人知道的话,我找不到关于那个的文件,我可以知道吗???

谢谢

1 个答案:

答案 0 :(得分:7)

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

MUI2 readme

中记录了这一点
  

欢迎和完成页面没有   使用时间更长   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

或者,如果您没有使用现有的完成页面复选框,则可以在不使用show callback的情况下将其用于custom stuff ...