如何阻止NSIS自定义页面进入下一页?
我有一个自定义页面,用户可以决定他们可以为我们的插件安装哪个版本的应用程序 - 因此可以选择3个复选框。
用户必须选择至少1个版本才能将我们的插件安装到/ for,否则安装程序将无需安装。
因此,当用户点击下一步时,我需要检查是否选中了一个或多个复选框,如果没有,则禁用下一步并显示一个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
答案 0 :(得分:2)
使用Abort
命令。
NSIS Manual, Chapter 4, Scripting Reference, section 5, Pages, subsection 3, Callbacks:
离开功能可让您使用Abort强制用户留在当前页面。