2012-10-01 50 views
0

試圖優化我的MUI 2 NSIS安裝程序中,我做的.onInstSuccess callback function一些ExecWait電話,我正在尋找通過the documentation找到一個被稱爲回調:複製完所有文件後可能具有NSIS回調函數嗎?

  • 後的文件都複製- 和 -
  • 將嚮導頁面從文件複製頁面切換到完成頁面之前。

不幸的是,我沒有發現這種回調。

所以我的問題是:

是否有可能做一些加工定製的文件複製完成後,嚮導頁面之前被從文件中複製頁面切換了嗎?

回答

1

使用MUI_PAGE_CUSTOMFUNCTION_LEAVE是好的。這取決於您是否希望在日誌中打印「已完成」之前或之後執行操作。對於前者,你可以只是堅持的代碼在最後一節:

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將打印到日誌..

+0

偉大的答案(一如既往;-)。非常感謝,安德斯! –

1

剛剛發現我自己的解決方案(也許Anders將有一個更好的,雖然):

MUI 2允許定義定製的回調函數,所以我的定義之前正確使用MUI_PAGE_CUSTOMFUNCTION_LEAVE macro

!insertmacro MUI_PAGE_INSTFILES 

註冊一個自定義功能。所以,我的NSI文件的樣子:

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

隨着inst_leave是像

Function inst_leave 
    ... 
FunctionEnd 

這並獲得成功。

相關問題