首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inno安装程序的AppMutex :在提示符前等待几秒钟

Inno安装程序的AppMutex :在提示符前等待几秒钟
EN

Stack Overflow用户
提问于 2016-01-29 10:03:26
回答 1查看 1.2K关注 0票数 2

使用Inno安装程序和一个AppMutex可以很好地工作-当安装启动并且互斥仍然存在时,提示用户关闭这个应用程序。

但以下问题:是否有方法告诉Inno安装程序等待2-3秒,如果程序关闭之前,向用户显示此提示?

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

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

有办法做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-29 15:44:35

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

您必须在循环中使用 function实现互斥体检查,就像在your previous question中建议的那样。

代码语言:javascript
复制
[Code]

const
  MutexName = 'MutexName';

function InitializeSetup: Boolean;
var
  WaitInterval: Integer;
  Wait: Integer;
begin
  Wait := 3000;

  WaitInterval := 250;
  while (Wait > 0) and CheckForMutexes(MutexName) do
  begin
    Log('Application is still running, waiting');
    Sleep(WaitInterval);
    Wait := Wait - WaitInterval;
  end;

  while CheckForMutexes(MutexName) do
  begin
    if MsgBox(
         FmtMessage(SetupMessage(msgSetupAppRunningError), ['MyApplication']),
         mbError, MB_OKCANCEL) <> IDOK then
    begin
      Abort;
    end;
  end;

  Result := True;
end;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35081681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档