function isTaskRunning(ExeFileName:
string): boolean;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
if ExeFileName = '
'
then
raise Exception.Create('
isTaskRunning: ExeFileName muss angegeben werden');
result := false;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
//use FProcessEntry32.szPID to
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while (integer(ContinueLoop) <> 0)
and not Result
do
begin
if (StrIComp(PChar(ExtractFileName(FProcessEntry32.szExeFile)), PChar(ExeFileName)) = 0)
or (StrIComp(FProcessEntry32.szExeFile, PChar(ExeFileName)) = 0)
then
Result := true;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;