Hi,
ich möchte, dass mein prog nur 1x aufgerufen wird. das habe ich mit folgendem code..
..in der form-datei (*.pas)
Code:
function BereitsAktiv: Boolean;
var semName: PChar; hSem: THandle;
begin
Result := False;
GetMem(semName,11);
StrPCopy(semName,'ARV'+B);
hSem := CreateSemaphore(nil,0,1,semName);
if (hSem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS) then
begin
CloseHandle(hSem);
Result := True;
end;
FreeMem(semName,11);
end;
..und in der hauptdatei (*.dpr)
Code:
begin
if BereitsAktiv then Application.Terminate
else begin
//...
try
Bitte:=TBitte.Make('Das Programm wird gestartet');
Bitte.Show;
Bitte.Refresh;
Application.Initialize;
Application.CreateForm(TFenster, Fenster);
finally
Bitte.InitializationDone := True;
end;
Application.Run;
end;
end.
das mit dem bitte ist ein splashscreen, aber nicht weiter wichtig...
nun möchte ich, wenn ich das programm ein zweites mal starten will, dass das programm in den vordergrund gerückt wird (wie z.b. bei winamp).
PLEASE HELP!!!