如果不满足条件,请停止前进到下一页



如何阻止 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 小节,回调

离开函数允许您强制用户使用中止停留在当前页面上。

最新更新