【发布时间】:2011-09-25 17:51:34
【问题描述】:
我已成功添加一个复选框到 nsis 安装程序的完成页面,使用 MUI 在完成页面中定义 MUI_PAGE_CUSTOMFUNCTION_PRE 和 MUI_PAGE_CUSTOMFUNCTION_SHOW 的功能。
但如果我包含MUI2 而不是MUI,则不会显示该复选框。我想MUI2 与MUI 在这方面有些不同。我找不到这方面的文档,如果有人知道,我可以知道吗???
谢谢
【问题讨论】:
我已成功添加一个复选框到 nsis 安装程序的完成页面,使用 MUI 在完成页面中定义 MUI_PAGE_CUSTOMFUNCTION_PRE 和 MUI_PAGE_CUSTOMFUNCTION_SHOW 的功能。
但如果我包含MUI2 而不是MUI,则不会显示该复选框。我想MUI2 与MUI 在这方面有些不同。我找不到这方面的文档,如果有人知道,我可以知道吗???
谢谢
【问题讨论】:
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,而无需使用显示回调...
【讨论】:
NSD_Create* - 必须存在一个对话框才能使其工作,因此必须在此函数之前调用 nsDialogs::Create。"。