program Project1;
uses
Forms,
Windows,
Unit1 in 'Unit1.pas' {Form1};
Var
hMutex : HWND;
Ret : Integer;
{$R *.res}
begin
Application.Initialize;
Application.Title := 'test';
hMutex := CreateMutex(nil,false,'test');
Ret := GetLastError;
if Ret<>ERROR_ALREADY_EXISTS then
begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
begin
Application.MessageBox('have run','',MB_OK);
ReleaseMutex(hMutex);
end;
end.
主要用到的是
CreateMutex
function CreateMutex(lpMutexAttributes: PSecurityAttributes; bInitialOwner: BOOL; lpName: PChar): THandle;
lpMutexAttributess 是一个 结构类型的指针,可以设置为NULL.
bInitialOwner 是否初始化互斥对象。
lpName 互斥对象的名称。