1

我有一个NSIS 安装程序,它通过这个命令卸载旧版本

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

安装程序应该等到旧版本的卸载完成,然后继续进行新安装。问题是,用户在安装窗口中很长一段时间都看不到任何进度(卸载程序必须删除一些巨大的目录,所以它需要自己的甜蜜时间)。

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

无论如何,在静默模式下执行卸载程序时,我可以在安装程序窗口中显示一些进度吗?

4

1 回答 1

1

使用 /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 开关运行它...

于 2012-05-04T16:05:31.603 回答