Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Application.Terminate und initialization

  Alt 3. Feb 2009, 09:21
Moin,

ich habe in einer Software eine umfangreiche Initialisierung von Hardware. Ich brauche also eine Absicherung gegen einen Mehrfachaufruf des Programms. Die wird in der initialization-Klausel aufgerufen, ebenso wie die Initialisierung der Hardware. Zu Beginn hatte ich das so verwendet:
Delphi-Quellcode:
ProgHandle := CreateMutex(nil, True, 'Anwendung');
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
    Application.Terminate;
  end;
Im Test schlug das fehl, weil es doch noch Hardwarezugriffe gab.
Ich habe es erstmal gelöst, indem ich das Terminate durch HALT ersetzt habe, würde aber gerne wissen, ob die Initialisierung des Programms auch bei Terminate noch voll durchlaufen wird oder wie das Verhalten tatsächlich ist. Laut Hilfe ruft Terminate postQuitMessage auf. Wenn das aber erst nach Abschluss der Programminitialisierung verarbeitet wird, muss ich das umstrukturieren.

Grüße, Messie
  Mit Zitat antworten Zitat