Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Doppelten Start eines Programmes verhindern

  Alt 25. Okt 2006, 21:37
Eine Funktion die einen Boolean zurückgibt:
Delphi-Quellcode:
function firstInstanz : Boolean;
begin
  // Überprüfen, ob dies die 1. Instanz ist, oder eine weitere...
end;
Ich habe mich nicht damit auseinandergesetzt... Deshalb kann es sein, dass es so nicht geht, aber wenn es so geht, dann kann man so ein Halt; / Application.Terminate; umgehen!

Nicht getestet:
Delphi-Quellcode:
program Project1;

uses
 Forms,
 Unit1 in 'Unit1.pas{Form1};

{$R *.RES}

var
  mHandle : THandle;

begin
  
  mHandle := CreateMutex(Nil, True, 'TForm1');

  if GetLastError <> ERROR_ALREADY_EXISTS then begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end;

  if mHandle <> 0 then
   CloseHandle(mHandle);
end.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat