加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 查找应用程序的先前实例的最简单方法

发布时间:2020-12-15 09:06:39 所属栏目:大数据 来源:网络整理
导读:我在Delphi中重写了一个VB6应用程序.它应该只有一个实例在运行.如何用最少的代码完成这项工作? 在VB6中,我们只需要使用一行代码 If App.PrevInstance Then ‘Take some action End If 在goggling我找到了解决方案,但它很长,我们不得不乱用.drp文件. 我不想
我在Delphi中重写了一个VB6应用程序.它应该只有一个实例在运行.如何用最少的代码完成这项工作?

在VB6中,我们只需要使用一行代码
>

If App.PrevInstance Then
‘Take some action
End If

在goggling我找到了解决方案,但它很长,我们不得不乱用.drp文件.

我不想那样做.

我想要更简单的东西.

解决方法

我有一些代码:

var
    AppMutex: THandle;

{ .... }


initialization
    // Create the mutex
    AppMutex := CreateMutex(nil,True,'MY-APPLICATION-NAME');
    if (AppMutex = 0) or (GetLastError = ERROR_ALREADY_EXISTS) then
    begin
        MessageDlg('My application is already running on this computer.'#13#10+
            'You should close the other instance before starting a new one.',mtError,[mbOK],0);
        Halt;
    end;

finalization
    // Close the mutex
    CloseHandle(AppMutex);

但我确信@mghie所链接的帖子中的答案更有用/更丰富!

编辑:注意你可以把它变成一个小单元,然后在你的项目中使用那个单元.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读