Inno setup Inno设置:如何在[文件]部分捕获退出代码

Inno setup Inno设置:如何在[文件]部分捕获退出代码,inno-setup,Inno Setup,1) 我已经安装了1.0版本的产品 2) 当我尝试将产品升级到2.0版本时,我面临以下问题: a) 当文件正在使用时,innosetup会抛出一个错误,表示无法替换文件,并显示“中止重试忽略”消息框 因此,我的要求是,当innosetup无法在静默/交互式安装中替换文件时,我需要知道该文件的退出状态,以便我可以尝试重命名该文件(正在使用)并重试复制该文件 提前谢谢。没有任何方法可以做到这一点 如果文件在安装过程中正在使用,您可以使用restartplace标志计划在重新启动时替换该文件 但更好的

1) 我已经安装了1.0版本的产品

2) 当我尝试将产品升级到2.0版本时,我面临以下问题:

a) 当文件正在使用时,innosetup会抛出一个错误,表示无法替换文件,并显示“中止重试忽略”消息框

因此,我的要求是,当innosetup无法在静默/交互式安装中替换文件时,我需要知道该文件的退出状态,以便我可以尝试重命名该文件(正在使用)并重试复制该文件


提前谢谢。

没有任何方法可以做到这一点

如果文件在安装过程中正在使用,您可以使用
restartplace
标志计划在重新启动时替换该文件


但更好的解决方案是首先防止它被使用,例如,通过使用
AppMutex
检测应用程序正在运行,或者关闭后台应用程序/服务,或者在后台应用程序中使用最新版本的Inno和Restart Manager支持。

我们已经在使用restartreplace标志。如果二进制文件有任何文件句柄,则重新启动计算机后,restartreplace标志将替换该二进制文件。我的要求是检测是否有任何二进制文件句柄,然后在[files]部分重命名旧的二进制文件。>但更好的解决方案是首先防止它被使用,例如,通过使用AppMutex检测应用程序正在运行,我们在[files]中有近40个二进制文件部分,如果使用互斥概念,则我们需要在[SETUP]部分的“AppMutex”设置中添加所有互斥名称,这将花费大量时间和精力。>通过关闭后台应用程序/服务,关闭使用二进制文件的后台应用程序/服务,首先,我们需要检测哪个应用程序正在使用我们的二进制文件。因此,我们无法找到一个软件或api来实现这一点。>通过在后台应用程序中使用最新版本的Inno和Restart Manager支持。这是什么?你能解释一下吗?关于重启管理器,主要是使用最新版本的Inno。您可以选择在应用程序中加载,但这不是标准应用程序所必需的。驱动程序在启动时加载(当前未插入的USB设备除外),这当然是在Windows处理
重新启动替换
条目之前加载的。这对于任何安装系统都是一个问题。通常,您需要使用特殊的API来安装或升级驱动程序;它们的工作方式与其他文件不同。你应该把这类问题作为一个单独的问题来问。