2
    page custom test

    # Installer sections
    Section -Main SEC0000
        SetOutPath $INSTDIR
        MessageBox MB_OK "done"
        ;............
        ;.........
    SectionEnd

    Function test
        MessageBox MB_OK "ok"
        //Do some stuff
    FunctionEnd

    # Installer functions
    Function .onInit
   !ifdef IsSilent
         SetSilent silent
   !endif
         InitPluginsDir
    FunctionEnd

上記のコードでは、サイレントモードと非サイレントモードの両方を実行します。非サイレントモード[ユーザーインタラクション]で実行すると、カスタムページ関数が呼び出され、メッセージボックスが表示されます。ただし、サイレントモード[ユーザー操作なし]で実行すると、カスタムページは呼び出されず、メッセージボックスは表示されません。また、サイレントモードではdonemsgボックスが表示されました。

サイレントインストーラーでカスタムページが呼び出されない理由はありますか?

サイレントインストーラーモードでカスタムページを呼び出す方法は?

4

1 に答える 1

5

カスタムページがサイレントインストーラーで呼び出されなかった理由はありますか?

これは仕様によるものです。サイレントインストーラーはサイレントです。つまり、GUIは表示されないため、ページは表示されず(標準でもカスタムでもありません)、ページコールバックはトリガーされません。MessageBox標準関数にマップされ、ユーザーによってトリガーされたため、特別です。

サイレントインストーラーモードでカスタムページを呼び出す方法は?

それはいけません。カスタムページで処理を行う場合は、それを関数に入れます。

  • カスタムページから呼び出されます
  • .onInitまたはのいずれかから明示的に呼び出されます。

    IfSilent 0 +2
    Call YourProcessingFunc
    

カスタムページでユーザーが指定したいくつかの選択に基づいて処理を行う場合は、サイレントモードでいくつかのデフォルトを使用する必要があります。または、コマンドラインから渡されるパラメータを実装します。

于 2013-03-27T10:01:57.100 に答える