gpt4 book ai didi

inno-setup - 如何添加将在提取文件之前执行的 Pascal 脚本(Inno Setup)中的 sleep

转载 作者:行者123 更新时间:2023-12-04 13:05:15 24 4
gpt4 key购买 nike

我正在尝试制作一个安装程序,它将在安装新安装之前卸载旧安装。

我面临的问题是,卸载程序停止然后删除已安装的服务,删除服务后,Windows 需要 15 秒才能删除该服务,waituntilterminated 标志没有帮助,

因为删除服务命令(即 service.exe remove)在 1 秒内完成

我想要的只是添加一个 15 秒的 sleep ,它将在 [UninstallRun] 下的所有进程完成后或在实际提取文件之前执行

因为,否则卸载程序无法删除所有文件,因为该进程仍在运行 15 秒

因此,重新安装会引发错误,删除文件失败,访问被拒绝,

如果我等待 15 秒然后单击重试,则安装程序能够覆盖旧文件

最佳答案

最简单的解决方案是让 sleep 成为卸载命令的一部分。您可以使用 timeout command .

[UninstallRun]
Filename: cmd; Parameters: "/c service.exe remove && timeout /t 15 /nobreak"; \
Flags: runhidden

更好的方法可能是从 CurUninstallStepChanged(usPostUninstall) event 的 Pascal 脚本中执行 service.exe remove .然后你可以使用 Sleep function .


虽然更好的方法是检查服务何时真正完成,而不是等待任意时间。

参见示例 How to uninstall the program when it is running and only after the user's confirmation to close and uninstall it - Inno Setup .

关于inno-setup - 如何添加将在提取文件之前执行的 Pascal 脚本(Inno Setup)中的 sleep ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69819883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com