尝试优化我在.onInstSuccess
callback function中进行ExecWait
次调用的MUI 2 NSIS设置,我正在搜索the documentation以查找名为的回调:
不幸的是,我没有发现这样的回调。
因此我的问题是:
在复制文件之后和从文件复制页面切换向导页面之前,是否可以进行一些自定义处理?
答案 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
这就是诀窍。
答案 1 :(得分: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
...