Zum Thema OneInstance:
Ein Hinweis für alle, die nur verhindern wollen, dass eine zweite Instanz eines Programms gestartet wird und das neu gestartete Programm abbrechen wollen, wenn es schon eine solche gibt, ohne dem anderen Programm eine Nachricht zu schicken: Für diese Aufgabe gibt es das wenig bekannte Windows
Mutex Objekt, das diese Aufgabe auf einfachste Art erledigt:
Delphi-Quellcode:
procedure AbortIfNotUnique (const Bezeichnung: string);
begin
createMutex( nil, true, PWideChar(Bezeichnung));
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageDlg('Das Programm '+Bezeichnung+' ist schon in Betrieb'#13#10
+'Sie können immer nur eine Version des Programmes starten',
mtError,[mbOk],0);
halt;
end;
end;