如何阻止 NSIS 自定义页面前进到下一页?
我有一个自定义页面,用户可以在其中决定他们可以安装我们的插件的应用程序版本 - 因此有 3 个复选框可供选择。
用户必须选择至少 1 个版本来安装我们的插件,否则安装程序将没有要安装的内容。
因此,当用户单击下一步时,我需要检查是否选中了 1 个或多个复选框,如果没有,那么我禁用下一步并显示 MessageBox。
如果我无法停止前进到下一页,我可以禁用下一步按钮吗?
Page Custom CustomPageInitialise CustomPageFinalise
Function CustomPageFinalise
Var /GLOBAL versToInstall
${NSD_GetState} $hasVersion8ChkBx $0
${NSD_GetState} $hasVersion9ChkBx $1
${NSD_GetState} $hasVersion10ChkBx $2
IntOp $versToInstall $0 + $1
IntOp $versToInstall $versToInstall + $2
# TODO: stop advance to NEXT page if no versions selected to install
# If no versions selected to install
${If} $versToInstall <= 0
MessageBox MB_ICONEXCLAMATION|MB_OK "You must select at least one version of the Application to install our plugins to."
# how do I stop the advance to the next page?
${EndIf}
FunctionEnd
使用 Abort
命令。
NSIS 手册,第 4 章,脚本参考,第 5 节,页面,第 3 小节,回调:
离开函数允许您强制用户使用中止停留在当前页面上。