Inno setup 带Inno设置的AppMutex:等待几秒钟后提示

Inno setup 带Inno设置的AppMutex:等待几秒钟后提示,inno-setup,mutex,Inno Setup,Mutex,使用Inno设置和AppMutex可以正常工作-当设置启动且互斥仍然存在时,系统会提示用户关闭此应用程序 但问题是: 如果程序自动关闭,有没有办法告诉Inno安装程序等待2-3秒,然后再向用户显示此提示 原因是为了自动更新,我正在从程序本身运行Inno安装程序。安装文件执行后,程序会自动关闭,但显然这需要很长时间(至少在某些系统上)。所以Inno安装程序向用户显示了这个——在这种情况下——无用的对话框,尽管程序已经关闭了 因此,我希望Inno安装程序等待2-3秒,并且只有在该时间之后互斥体仍然存

使用Inno设置和
AppMutex
可以正常工作-当设置启动且互斥仍然存在时,系统会提示用户关闭此应用程序

但问题是: 如果程序自动关闭,有没有办法告诉Inno安装程序等待2-3秒,然后再向用户显示此提示

原因是为了自动更新,我正在从程序本身运行Inno安装程序。安装文件执行后,程序会自动关闭,但显然这需要很长时间(至少在某些系统上)。所以Inno安装程序向用户显示了这个——在这种情况下——无用的对话框,尽管程序已经关闭了

因此,我希望Inno安装程序等待2-3秒,并且只有在该时间之后互斥体仍然存在时,才会向用户显示提示


有没有办法做到这一点?

有了这样的要求,您就不能使用内置的

您必须使用以下方法实现互斥检查:

[代码]
常数
MutexName='MutexName';
函数初始化设置:布尔;
变量
等待间隔:整数;
等待:整数;
开始
等待:=3000;
等待间隔:=250;
while(等待>0)和CheckForMutexes(MutexName)执行
开始
日志(“应用程序仍在运行,正在等待”);
睡眠(等待间隔);
等待:=等待-等待间隔;
结束;
而CheckForMutexes(MutexName)则
开始
如果MsgBox(
FmtMessage(SetupMessage(msgSetupAppRunningError),['MyApplication']),
B错误,B_ok取消)我知道了
开始
中止
结束;
结束;
结果:=真;
结束;

您在上一篇文章中已经基本上得到了这个问题的答案。谢谢Martin,这帮了大忙!