Einzelnen Beitrag anzeigen

Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#1

Programm nur einmal starten

  Alt 30. Jan 2010, 13:18
Nächstes Problem. Ein Programm darf nur einmal gestartet werden. Dazu habe ich diese Funktion:

Delphi-Quellcode:
function AppAlreadyUsed(path:string):boolean;
var mHandle: THandle;
    ergebnis:boolean;
Begin
  ergebnis:=false;
  mHandle := CreateMutex(nil,True,PAnsiChar('Global\'+path));
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
    ergebnis:=true;
  end;

  if mHandle <> 0 then
    CloseHandle(mHandle);

  result:=ergebnis;
End;
Aufgerufen wird die Funktion z.B. so:

Delphi-Quellcode:
if AppAlreadyUsed('C:\Windows\notepad.exe') = true
  then
     Label3.Caption:='Notepad bereits ausgeführt'
  else
     Label3.Caption:='Notepad läuft momentan nicht';
Was mache ich da wieder falsch?
  Mit Zitat antworten Zitat