3

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
4

1 に答える 1

4

コマンドを使用しAbortます。

NSIS マニュアル、第 4 章、スクリプト リファレンス、セクション 5、ページ、サブセクション 3、コールバック:

leave-function を使用すると、 Abortを使用してユーザーを強制的に現在のページに留まらせることができます。

于 2012-05-15T22:34:59.343 に答える