二重起動防止措置で既存プロセスを最前面に送る
|
以下のコードでうまく動くそうです。
定数宣言部分を必要に応じて書き換えて使います。
program Project1;
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
const
MutexName = 'TEST_MUTEX';
ClassName = 'TForm1';
WindowName = 'Form1';
var
Mutex: THandle;
Handle: THandle;
begin
Mutex := OpenMutex(MUTEX_ALL_ACCESS, False, MutexName);
if Mutex <> 0 then
begin
Handle := FindWindow(ClassName, WindowName);
SetForegroundWindow(Handle);
Exit;
end;
CreateMutex(nil, False, MutexName);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
|
|