Одна копия запущенного приложения
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".
Комментарии