二重起動チェック

二重起動していたら分岐する例です。

VB.NET

If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).GetUpperBound(0) > 0 Then
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    〜〜二重起動時の処理を記述〜〜
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
End If

Delphi

dprファイルのソースに以下のような処理を入れます。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜Program名、uses定義などを記述 〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
const
  MutexName = 'TEST_MUTEX';
var
  Mutex: THandle;
begin
  Mutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName);
  if Mutex <> 0 then
  begin
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    〜〜二重起動時の処理を記述〜〜
    〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
  end;
  CreateMutex(nil, False, MutexName);
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜以降にApplication.*の起動処理を記述 〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

検索キーワード

VB.NET Delphi 二重起動 多重起動 プロセスチェック