最初のページには 2 つのラジオ ボタンがあります。1 つはインストール用、もう 1 つはアップグレード用です。ユーザーの選択に応じて、インストールまたはアップグレード用のカスタム ページを表示する必要があります。これどうやってするの?
2 に答える
abort
カスタム ページの create 関数コールバックを呼び出すと、ページはスキップされます。
Function MyPage
${If} $somevar == "something"
Abort
${EndIf}
;Show page with nsDialogs or InstallOptions here...
FunctionEnd
page custom MyPage
私はそれを直接テストしていません (私の onw NSIS スクリプトがその機能を必要とするので、すぐにテストします) が、関数RelGotoPage
はあなたが必要とすることを行うことができるかもしれません.
この関数は、NSIS を現在のページから相対的に指定されたページに移動させます。
以下でのみ使用してください。
- 通常の機能、
- "
.onUserAbort
" コールバック関数 (MUI なし) または- 「
!define MUI_CUSTOMFUNCTION_ABORT
機能」(MUI付き)この機能では、その機能を使用することもできる
InstallOptions
ためInstallOptionsEx
、デフォルトの NSIS ボタンの代わりにどのコントロールを使用するかを選択できます。
注:このスレッドでは、別のアプローチが提案されています。
RelGotoPage
ユーザーが [戻る] ボタンをクリックしてもページが表示されるため、使用を控えてください。
代わりに、特定の条件がそれらをスキップするように設定されている場合、Abort
ページの pre 関数とカスタム ページの関数を呼び出す必要があります。show
そのため、ボタンに応じて適切な変数を設定することで、表示したくないページをスキップして、該当するページで停止することができます。
NSIS マニュアルのCallback セクションを参照してください。
各組み込みページには 3 つのコールバック関数があります: pre-function、show-creation 関数、および leave-function です。
- ページが作成される直前に事前関数が呼び出され、
- show-function は、作成された直後、表示される前に呼び出され、
- leave-function は、ユーザーが次のボタンを押した直後、ページを離れる前に呼び出されます。
と:
- 事前機能により、Abort を使用してページをスキップできます。
CreateFont
show 関数を使用すると、 、SetCtlColors
、およびその他を使用してページのユーザー インターフェイスを微調整できますSendMessage
。- leave-function を使用すると、Abort を使用してユーザーを強制的に現在のページに留まらせることができます。