アプリケーションの二重起動を防止する

ここでのソースはプロジェクトソースです。



■使用するAPI関数

■ソースは下記のようになります。

アプリケーションの二重起動を防止する処理
program Project1;

uses
Forms,Windows,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

var
Mutex: Integer;

begin

 //ミューテックスオブジェクトのハンドルを取得する
 Mutex := OpenMutex(MUTEX_ALL_ACCESS, False, 'EX_Mutex');

 if
Mutex <> 0 then

 begin

  // オブジェクトのハンドルをクローズする
  CloseHandle(Mutex);
 
 Exit;

 end;


 //ミューテックスオブジェクトを作成する
 Mutex := CreateMutex(nil, False, 'EX_Mutex');

 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;

 //ミューテックスオブジェクトの所有権を解放する
 ReleaseMutex(Mutex);

end.




Win32APIのページへ



ホーム PV ランキング