如何等待卸载程序完成?
Posted
技术标签:
【中文标题】如何等待卸载程序完成?【英文标题】:How to wait for uninstaller to finish? 【发布时间】:2011-03-16 11:17:41 【问题描述】:使用 NSIS,我想启动一个卸载程序并等待它完成,然后再继续我的安装程序。问题是卸载程序会立即返回,即使我使用的是ExecWait
。
我在这里看到了这个页面:http://nsis.sourceforge.net/When_I_use_ExecWait,_it_doesn%27t_wait,其中提到了它发生的原因,然后提供了一些建议,但我无法让我的工作。
我正在尝试的代码是:
ExecWait '"C:\path\to\uninstall.exe" /NCRC' $0
MessageBox MB_OK "uninstaller returned $0"
在卸载程序启动的同时显示显示“卸载程序返回 0”的消息框。有没有人解决这个问题?
谢谢
【问题讨论】:
【参考方案1】:您链接到的页面通常谈论 ExecWait,但它也链接到 When I use ExecWait uninstaller.exe it doesn't wait for the uninstaller,这是您正在寻找的 NSIS 特定信息(_?=c:\theinstalldir 告诉 nsis 卸载程序不要将自身复制到 % temp% 并在那里执行一个新的(非等待)副本)
【讨论】:
@Anders:我也有同样的问题。我正在尝试ExecWait '"C:\Program Files\My Program\unins000.exe" _?="C:\Program Files\My Program"'
...但对我来说它不起作用。我还在末尾添加了MessageBox MB_OK
以交叉检查它是否正常工作,但在卸载过程之前会立即显示消息框。
@Anders:可能。我需要执行unins000.exe
并等待卸载过程完成。此外,我在我的安装程序的正常安装部分(而不是在 Uninstaller 中)使用ExecWait
。有没有可能?以上是关于如何等待卸载程序完成?的主要内容,如果未能解决你的问题,请参考以下文章
Inno Setup5 如何更改卸载图标(我做出来的安装程序和卸载的一样)我想把卸载图标换成别的。