Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#26

Re: Doppelten Start eines Programmes verhindern

  Alt 10. Feb 2007, 23:46
Wieso werde ich in Verbindung mit "HALT" gebracht ? Wer verwendet denn so was ? Wenn schon, dann gleich mit GOTO.

Es gibt zwei grundsätzliche Methoden, ein Programm nur einmal zu starten. Entweder beim Starten der zweiten Instanz eines Programmes die erste zu beenden und das eben wieder zu starten, egal wo das zuerst gestartete gerade war. Das hat meistens schwerwiegende Konsequenzen. Holzhammermethoden. 8) Das wäre wirklich "nach mir die Sintflut" mit HALT etc.

Die andere ist : Semaphore setzen, wie von mir vorgeschlagen, um eben genau wieder da zu sein, wo der irgendwann zu bearbeitende Text oder sonstwas, der 5 Stunden vergessen wurde eben ist. Und zwar so ungefähr :

Delphi-Quellcode:
     hWndMe := FindWindow(appClass,appTitle);
    // falls andere Instanz existiert : diese in Vordergrund bringen,
    // Programm steht dann wieder genau an der Stelle, an der es verlassen wurde
    if (hWndMe <> 0) then begin
      BringWindowToTop(hWndMe);
      ShowWindow(hWndMe,SW_SHOWNORMAL);
    end;
Vielleicht geht das mit Mutex auch. Kann allerdings aus eigener Erfahrung nur sagen, dass es mit Semaphoren genau so geht. Sehr viele Fragen und Hinweisversuche in zig Foren über Mutex, die diesem ca. 80 % "Fragen-Marktanteil" beschert haben geben mir aber zu denken. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat