当前位置 : 主页 > 编程语言 > delphi >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
我在Delphi中重写了一个VB6应用程序.它应该只有一个实例在运行.如何用最少的代码完成这项工作? 在VB6中,我们只需要使用一行代码 If App.PrevInstance Then ‘Take some action End If 在goggling我找
我在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所链接的帖子中的答案更有用/更丰富!

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

网友评论