Einzelnen Beitrag anzeigen

pertzschc

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

Re: Doppelten Start eines Programmes verhindern

  Alt 25. Okt 2006, 22:13
Zitat von Hansa:
Sagen wirs mal so : wird das Programm beendet, dann ist der Speicher immer noch da. Angenommen, Du schreibst in Word einen Text und beim Rechner wird plötzlich Stecker gezogen. Was ist nun mit dem Text ? Ist der vielleicht sogar unrettbar weg ?
Den Vergleich verstehe ich nicht.

Es ging mir um folgende konkrekte Frage:
Eine Instanz eines Programmes läuft im Windows und erfreut sich bester Gesundheit.
Jetzt startet der User eine 2. Instanz des Programmes.

Wenn ich dabei das Mutex-Prinzip umsetze und z.B. in einer separaten Unit in das Projekt
einbinde, dann wir das Programm beendet zwischen begin und Application.Initialize; - also
bevor der Code zum initialisieren greift:
Delphi-Quellcode:
{$R *.res}
...
begin
// hier wird der Ablauf schon unterbrochen!!
  Application.Initialize;
  Application.Title := 'xxx';
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.
Okay ich gebe zu, das Initialization-Blöcke in anderen Units auch schon ausgeführt werden.
Aber nun nochmal ganz genau: Welchen Nebeneffekt hat ein Halt; zu diesem Zeitpunkt des Programmstarts? Was kann z.B. Windows nicht tun, was es normalerweise tun muss, um den Prozess korrekt zu beenden?

Gruß,
Christoph
  Mit Zitat antworten Zitat