Home » Tipps & Tricks » System » Prozesse » Ermitteln ob eine Exe-Datei läuft
Ermitteln ob eine Exe-Datei läuft
Mit folgendem Code kann geprüft werden, ob eine Exe-Datei läuft.Über Die TProcessEntry32-Struktur kann auch gleich ein Handle auf den Prozess ermittelt werden.Nähere Informationen im PSDK unter dem Stichwort ProcessEntry32.
uses TlHelp32; function IsExeRunning(const AExeName: string): boolean; var h: THandle; p: TProcessEntry32; begin Result := False; p.dwSize := SizeOf(p); h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0); try Process32First(h, p); repeat Result := AnsiUpperCase(AExeName) = AnsiUpperCase(p.szExeFile); until Result or (not Process32Next(h, p)); finally CloseHandle(h); end; end;
Beispielaufruf
procedure TForm1.Button1Click(Sender: TObject); begin if IsExeRunning('Notepad.exe') then ShowMessage('Notepad läuft') else ShowMessage('Notepad läuft nicht'); end;
Es wird dabei nur überprüft, ob eine Anwendung mit dem gleichen Dateinamen läuft. Es spielt keine Rolle in welchem Verzeichnis sich die Anwendung befindet. Aus diesem Grund muss der Funktion auch nur der Dateiname der EXE-Datei übergeben werden.