Одна копия запущенного приложения
var
mutex : THandle;
mutexName : array [0..7] of char;
begin
try
StrPCopy(mutexName ,'anyname');
mutex := openmutex ( MUTEX_ALL_ACCESS, False, mutexName ) ;
If mutex = 0 then begin
mutex := createmutex ( nil , true, mutexName);
Application.Initialize;
Application.CreateForm ( TForm1, Form1 );
Application.Run;
ReleaseMutex (mutex);
end
else begin
Messagedlg( 'Приложение уже запущено.' ,
mtinformation, [mbOk],0 );
Application.Terminate;
end;
finally
{ ... }
end;
end.
Для дополнительной информации обратитесь к Windows SDK о "mutex".
Комментарии