如何使用 Inno Setup 取消安装程序?

Uba*_*alo 1 installation inno-setup abort

我正在使用 Inno setup 来安装我的产品,在安装中我执行一个外部程序 (Validator.exe),如果该程序被取消或中止,我必须取消我自己的安装程序。

我将 Validator.exe 保存在 {app} 路径中并执行它。

当安装程序运行时,我调用 Validator.exe 文件,并通过以下方式获取执行结果:Exec(ExpandConstant('{app}/Validator.exe'), '', '', SW_SHOW, ewWaitUntilTermulated, ResultCode)。

但这是我尝试过的所有解决方案的问题:

InitializeSetup:Validator.exe 文件尚未复制到 {app} 中,因此永远不会执行。

Abort:只能在 (InitializeSetup,InitializeWizard,CurStepChanged(ssInstall)) 中调用,因此在这些情况下,验证器尚未复制。

DeinitializeSetup:我可以在安装后执行 Validator.exe,但此时无法中止我的安装程序。

在复制并执行 Validator.exe 后,我需要某种方法来取消安装,也许可以调用卸载,但我无法做到这一点。

谢谢你的帮助。

mgh*_*hie 5

您可以简单地使用ExtractTemporaryFile()帮助程序函数在任何早期安装步骤中提取validator.exe 。请参阅问题inno setup 在启动设置时提取文件而不是结束时以及我的回答。