Einzelnen Beitrag anzeigen

Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
615 Beiträge
 
Delphi 10.3 Rio
 
#49

AW: Verhindern eine Anwendung mehrfach zu starten

  Alt 13. Jan 2022, 06:35
Ich habe eine Lösung nur für Windows.
Verwende ich seit vielen Jahren in allen Programmen die es nötig haben.
Keine extra Unit, keine Komponente (wäre eh viel zu spät), keine Kopfschmerzen.

Das kommt direkt in die DPR:
Delphi-Quellcode:
// direkt nach begin
Mutex := CreateMutex(nil, True, 'EindeutigerName'); // das sollte am besten eine selbst erzeugte Class ID sein. Dann ist "eindeutig" recht sicher
if (Mutex <> 0) and (GetLastError = 0) then
  MutexError := false
else
  MutexError := true;
...
// alles was das programm so macht
...
// direkt vorm end
if Mutex <> 0 then
  CloseHandle(Mutex);
Natürlich sollte man den Mutex am Ende immer freigeben.
Aber zum Glück räumt auch Windows alles weg wenn der Prozess mal unerwartet übern Jordan geht.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat