Einzelnen Beitrag anzeigen

pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
309 Beiträge
 
Delphi 12 Athens
 
#4

Re: Doppelten Start eines Programmes verhindern

  Alt 25. Okt 2006, 18:47
Zitat von Andidreas:
an welcher stelle muss ich da dann die abfragen einbauen??? im oncreate ereigniss meiner hauptform??? oder gehts noch früher???
Du musst das Coding in eine neue Unit speichern und diese Unit in Dein Projekt einbinden. Dadurch wird ein uses-Eintrag in der .dpr-Datei automatisch erzeugt. Wenn Dein Programm initialisiert wird, werden die Units des Projektes nacheinander durchlaufen und zwar werden dabei die Initialization-Abschnitte aller Units (so vorhanden) ausgeführt. In Deinem Fall kommt die Ausführung also in der Mutex-Unit unit NichtDoppeltStarten; vorbei und durchläuft das Coding
Delphi-Quellcode:
Initialization
  mHandle := CreateMutex(nil,True,'xxxxx');
  // 'xxxxx' Der Anwendungsname ist hier einzutragen
  if GetLastError = ERROR_ALREADY_EXISTS then begin
    // Anwendung läuft bereits
    {showMessage('Anwendung läuft bereits!!!!!');}   
    // Wenn du deine Meldung willst, mach die Klammern weg
    Halt;
  end;
automatisch. Das Halt; sorgt dafür, das der Rest nicht mehr ausgeführt wird. Damit brauchst Du das Coding nirgendwo sonst aufzurufen (OnCreate o.ä.).

Bitte noch das 'xxxxx' anpassen in einem möglichst unique-Namen Deines Programmes.

Gruß,
Christoph
  Mit Zitat antworten Zitat