【问题标题】:How to display progress during a NSIS Installation, when installer calls the uninstaller in silent mode?当安装程序以静默模式调用卸载程序时,如何在 NSIS 安装期间显示进度?
【发布时间】:2012-05-13 20:53:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: nsis


    【解决方案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 开关运行它...

    【讨论】:

    • 谢谢!将尝试使用自定义开关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 2015-02-06
    • 2013-05-25
    相关资源
    最近更新 更多