Thema: Backup Hero

Einzelnen Beitrag anzeigen

dGeek
(Gast)

n/a Beiträge
 
#12

AW: Backup Hero

  Alt 13. Jul 2016, 17:00
Ich mache es schon seit Jahren so - zum Beispiel in der DPR-Datei des Projekts:

Delphi-Quellcode:
var
  hExistingInstance: THandle;
  aHandle: THandle;
  
const
 sUniqueMutexID: String = 'irgendeineuniquemutexid';
  
begin
 // Prüfen, ob das Fenster existiert. Wenn ja, kann man ja bei ".............." mit SendMessage Nachrichten an das Fenster senden o.ä.
 hExistingInstance := FindWindow('TMeinProgrammOderSo', nil);
  
 // Fenster scheint zu existieren...
 if hExistingInstance <> 0 then
  begin
   // ..............
   
   Halt(1);
  end;
  
 // Wenn das Fenster nicht existiert, nur dann einen Mutex erstellen
 aHandle := CreateMutex(nil, False, PWideChar(sUniqueMutexID));

 // Und wenn auch das schief gehen sollte.... abbrechen
 if GetLastError = ERROR_ALREADY_EXISTS then
  begin
   CloseHandle(aHandle);
   Halt(1);
  end;
end;
Man wird mich für diesen Code köpfen. Aber er funktioniert seit Jahren auf den unterschiedlichsten System vollkommen einwandfrei.
  Mit Zitat antworten Zitat