Ermitteln ob eine Exe-Datei läuft |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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
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.
- Laufende Anwendung beenden
- Verwendung von CreateProcess
- Herausfinden, ob ein bestimmtes Programm gerade läuft
- Anwendung für eine bestimmte Zeit pausieren
- Mehrfachstart verhindern
- Programm vor dem Taskmanager verstecken
- Alle sichtbaren Fenster minimieren/wiederherstellen
- Auflisten aller Fenster
- Button klicken
- Beliebige Fenster minimieren, maximieren