3

最初のページには 2 つのラジオ ボタンがあります。1 つはインストール用、もう 1 つはアップグレード用です。ユーザーの選択に応じて、インストールまたはアップグレード用のカスタム ページを表示する必要があります。これどうやってするの?

4

2 に答える 2

2

abortカスタム ページの create 関数コールバックを呼び出すと、ページはスキップされます。

Function MyPage
${If} $somevar == "something"
Abort
${EndIf}
;Show page with nsDialogs or InstallOptions here...
FunctionEnd

page custom MyPage
于 2009-12-28T18:19:29.113 に答える
1

私はそれを直接テストしていません (私の 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 を使用してページをスキップできます。
  • CreateFontshow 関数を使用すると、 、SetCtlColors、およびその他を使用してページのユーザー インターフェイスを微調整できますSendMessage
  • leave-function を使用すると、Abort を使用してユーザーを強制的に現在のページに留まらせることができます。
于 2009-12-28T12:47:42.447 に答える