Einzelnen Beitrag anzeigen

Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#33

Re: Verhindern eine Anwendung mehrfach zu starten

  Alt 6. Mai 2008, 15:49
@taaktaak:
Supi!!! Genau so funktioniert das auch.


Vielen Dank an alle, die ihre Zellen haben anstrengen müssen. Jetzt habe ich meinen Code so, wie ich es haben möchte.

Für alle, die es auch mal brauchen:
Delphi-Quellcode:
unit OneInstance;

interface

implementation

uses Windows, Forms;

var
  mHandle : THandle; // Mutexhandle
  h : HWnd;

initialization
  mHandle := CreateMutex(nil,True,'{7A366489-37B0-4E63-81A0-F0BBC281614D}');

  if GetLastError=ERROR_ALREADY_EXISTS then
  begin // Fehler, Pgm schon aktiv!
    h := 0; // vorhandene Instanz suchen
    repeat
      h := Windows.FindWindowEx(0,h,PChar('TApplication'),PChar(Application.Title))
    until h<>Application.Handle;

    if h<>0 then
    begin // aktivieren
      Windows.ShowWindow(h,SW_Restore);
      Windows.SetForegroundWindow(h);
    end;
    Halt; // und diesen zweiten Aufruf beenden!
  end;

finalization // ... und Schluß
  if mHandle <> 0 then
    CloseHandle(mHandle)

end.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat