当安装程序以静默方式调用卸载程序时,如何在NSIS安装期间显示进度?

时间:2012-05-04 10:00:43

标签: nsis

我有 NSIS安装程序,可以通过此命令卸载旧版本

ExecWait "$INSTDIR\temp\uninstall.exe /S _?=$INSTDIR"

安装程序应该等到旧版本的卸载完成后再继续安装。问题是,用户长时间没有在安装窗口中看到任何进展(卸载程序必须删除一些巨大的目录,因此它需要自己的甜蜜时间)。

我们不想删除/S开关,因为它会弹出卸载程序窗口,用户必须执行几次单击才能继续卸载并最终关闭卸载程序。

在静默模式下执行卸载程序时,我是否可以在安装程序窗口中显示某些进度?

1 个答案:

答案 0 :(得分:0)

使用/ S时无法获得反馈。你可以做的是组成你自己的参数并调整卸载程序:

!include FileFunc.nsh

UninstPage uninstConfirm un.skipifsilentprogress
UninstPage instFiles

Function un.skipifsilentprogress
ClearErrors
${GetParameters} $0
${GetOptions} "$0" "/UIS" $1
${IfNot} ${Errors}
    SetAutoClose true ;Make sure user does not have to click close
    Abort
${EndIf}
FunctionEnd

Section uninstall
Detailprint uninstalling...
Sleep 555
Sleep 555
Sleep 555
SectionEnd

使用特殊/ UIS开关运行它......