Inno setup 如何从[代码]部分在/VERYSILENT模式下中止Inno安装程序安装?

Inno setup 如何从[代码]部分在/VERYSILENT模式下中止Inno安装程序安装?,inno-setup,silent-installer,Inno Setup,Silent Installer,我正试图从[code]部分(在AfterInstall处理程序中)启动某个Windows服务。当它无法启动时,我想回滚安装 通常,当从UI运行安装程序时,WizardForm.Close()会正确执行此任务。但当使用/verysilent命令行参数执行安装程序时,WizardForm.Close似乎被忽略,安装继续进行。 我还尝试了另一篇关于堆栈溢出的文章建议的Abort(),但它的工作原理与任何其他suppressiblemsgbox一样,不会破坏安装 有没有办法在/verysilent模式下

我正试图从
[code]
部分(在
AfterInstall
处理程序中)启动某个Windows服务。当它无法启动时,我想回滚安装

通常,当从UI运行安装程序时,
WizardForm.Close()
会正确执行此任务。但当使用
/verysilent
命令行参数执行安装程序时,
WizardForm.Close
似乎被忽略,安装继续进行。 我还尝试了另一篇关于堆栈溢出的文章建议的
Abort()
,但它的工作原理与任何其他suppressiblemsgbox一样,不会破坏安装


有没有办法在
/verysilent
模式下有条件地中止安装?

没有办法以编程方式触发回滚

您所能做的就是使用强制中止安装

procedure ExitProcess(exitCode:integer);
外部的ExitProcess@kernel32.dllstdcall';
学分:



一个更干净的解决方案是安装文件,并在开始时以编程方式启动Windows服务。如果出现问题,请使用中断安装。在这种情况下,
Abort
起作用。请参阅向导form.Show()//即使使用verysilent也强制显示

很遗憾,我不能使用Abort(),因为安装程序首先安装服务DLL,然后使用服务发布文件,然后再安装这些文件。但是ExitProcess()就像一个符咒。谢谢这是如何回答这个问题的?