0

コールバック関数ExecWaitでいくつかの呼び出しを行うMUI2NSISセットアップを最適化しようとして、ドキュメントを検索して、呼び出されるコールバックを見つけました。.onInstSuccess

  • ファイルがすべてコピーされた後-そして-
  • ウィザードページがファイルコピーページから終了ページに切り替わる前。

残念ながら、そのようなコールバックは見つかりませんでした。

したがって、私の質問は次のとおりです。

ファイルがコピーされた後、ウィザードページがファイルコピーページから切り替わる前に、カスタム処理を行うことはできますか?

4

2 に答える 2

1

使用MUI_PAGE_CUSTOMFUNCTION_LEAVEは問題ありません。「Completed」がログに出力される前または後にアクションを実行するかどうかによって異なります。前者の場合は、最後のセクションのコードを貼り付けることができます。

Section
SetOutPath $Instdir
File "Foo"
File "Bar"

ExecWait '"$Instdir\dofinalthing.exe" /blah'
SectionEnd

また

Section
SetOutPath $Instdir
File "Foo"
File "Bar"
SectionEnd

Section -post
ExecWait '"$Instdir\dofinalthing.exe" /blah'
SectionEnd

これはもちろんプログレスバーの一部であり、使用しない限りログに出力されますsetdetailsprint...

于 2012-10-01T15:35:59.247 に答える
1

自分で解決策を見つけたばかりです(おそらくアンダースの方が良いでしょう):

MUI 2ではカスタムコールバック関数を定義できるため、定義の直前にMUI_PAGE_CUSTOMFUNCTION_LEAVEマクロを使用しました。

!insertmacro MUI_PAGE_INSTFILES

カスタム機能を登録します。したがって、私のNSIファイルは次のようになります。

...
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE inst_leave
!insertmacro MUI_PAGE_INSTFILES
...

inst_leaveようなもので

Function inst_leave
    ...
FunctionEnd

これでうまくいきました。

于 2012-10-01T08:20:36.757 に答える