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

时间:2012-05-15 22:13:44

标签: installer nsis

如何阻止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

1 个答案:

答案 0 :(得分:2)

使用Abort命令。

NSIS Manual, Chapter 4, Scripting Reference, section 5, Pages, subsection 3, Callbacks

  

离开功能可让您使用Abort强制用户留在当前页面。