Inno setup 如何在初始化安装后基于检查以静默模式退出安装

Inno setup 如何在初始化安装后基于检查以静默模式退出安装,inno-setup,Inno Setup,我正在尝试做类似的事情 显示欢迎页面后执行版本检查 降级并退出时显示消息框(带mbInformation,MB_OK) 这在UI模式下工作-安装程序退出。但是,在/静默模式下,它会显示消息框,但在单击“确定”按钮后会继续 您能否建议如何在静默模式下实现类似的功能(即优雅地退出设置)在静默模式下实现先决条件检查没有区别。如果要停止安装,只需在中测试您的先决条件,然后返回False 对于无声装置来说,唯一需要考虑的是: 对错误消息使用,而不是普通的。这样,就可以使用来抑制消息 对于非常安静的安

我正在尝试做类似的事情

  • 显示欢迎页面后执行版本检查
  • 降级并退出时显示消息框(带mbInformation,MB_OK)
这在UI模式下工作-安装程序退出。但是,在/静默模式下,它会显示消息框,但在单击“确定”按钮后会继续


您能否建议如何在静默模式下实现类似的功能(即优雅地退出设置)

在静默模式下实现先决条件检查没有区别。如果要停止安装,只需在中测试您的先决条件,然后返回
False

对于无声装置来说,唯一需要考虑的是:

  • 对错误消息使用,而不是普通的。这样,就可以使用来抑制消息
  • 对于非常安静的安装(
    /verysilent
    ),根本不显示消息框。
    另见
函数向导verysilent:Boolean;
变量
i:整数;
开始
结果:=假;
对于i:=1的参数
如果CompareText(ParamStr(i),'/verysilent')=0,则
开始
结果:=真;
打破
结束;
结束;
函数InitializeSetup():Boolean;
变量
消息:字符串;
开始
结果:=真;
如果我是低年级的话
开始
消息:=“检测到降级,正在中止安装”;
如果不是巫师,那么
开始
SuppressibleMsgBox(消息、mbError、MB_OK、MB_OK);
结束
其他的
开始
日志(消息);
结束;
结果:=假;
结束;
结束;

能否在脚本中显示您的
InitializeSetup
事件代码以确定发生了什么?对于非常安静的安装,我有一些注意事项。谢谢。在UI模式下,我希望安装程序至少显示欢迎页面,然后进行版本检查。虽然同样的方法也适用于静默模式,但看起来像WizardForm。关闭在静默模式下没有影响(可能是因为向导不可见?)。但是调用了NextButtonClick()。发布问题后,我更改了代码,以便在以静默模式运行时在InitializeSetup()中执行版本检查,或者在UI模式下在wpWelcome页面的NextButtonClick()中执行版本检查。另外,我是InnoSetup新手,没有发现SuppressibleMsgBox()-感谢您指出。如果您需要强制退出安装程序,可以使用
ExitProcess
调用。请看,我看到了ExitProcess()关于其他一些问题的建议(在发布此问题之前),但希望在InnoSetup内部机制中解决。ExitProcess()调用相当于从Task Manager(或PowerShell)执行类似的操作,并且不想这样做-这就是我在问题中提到“优雅地退出安装程序”的原因。另外,根据TLama在我的问题中对链接的评论以及您的回答,似乎我认为如果版本检查失败,安装程序应该显示欢迎页面是有缺陷的。