Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
RAD-Studio 2009 Ent
|
Re: Prüfen, ob eine Anwendung läuft
28. Jan 2005, 22:02
Moin,
so hab den Rat des Kollegen befolgt und diese Routine "geklaut":
Delphi-Quellcode:
const
MyGUID = 'hex-Zahl';
var
Semaphore: THandle;
ActivationMessage : integer;
var b_Ok : Boolean;
begin
ActivationMessage := RegisterWindowMessage(PChar(MyGUID));
Semaphore := CreateSemaphore(nil, 1, 1, PChar(MyGUID));
if (GetLastError = ERROR_ALREADY_EXISTS) then
begin
ShowMessage('Manager läuft bereits'+#10#13+
'und kann nicht mehrfach gestartet werden');
CloseHandle(Semaphore);
Exit;
end;
CloseHandle(Semaphore);
progstart := true;
Application.Initialize;
Einstell := TEinstellungen.Create;
Einstell.load;
// LOginmaske erzeugen
Frm_login := TFrm_login.Create(nil);
// durch try finally sicherstellen das Form freigegeben wird
try
b_Ok := Frm_login.login;
finally
FreeAndNil(frm_Login);
end;
progstart := true;
if (b_Ok) and (not sfirststart) then begin
Application.Title := 'Manager';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TfrmLizenzDaten, frmLizenzDaten);
Application.CreateForm(TfrmZinsen, frmZinsen);
Application.CreateForm(TPDF, PDF);
Application.CreateForm(TfrmNetzwerk, frmNetzwerk);
Application.CreateForm(Tprogramminfo, programminfo);
Application.Run;
end;
freeandnil (einstell);
end.
Es tuet sich leider nix ... Ich kann nach wie vor mehrfach starten.
Gruss
EL
Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
|