Mega Code Archive
 
 
    
How to check, if a process is running
Title: How to check, if a process is running
function processExists(exeFileName: string): Boolean;
var
 ContinueLoop: BOOL;
 FSnapshotHandle: THandle;
 FProcessEntry32: TProcessEntry32;
begin
 FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
 ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
 Result := False;
 while Integer(ContinueLoop) 0 do
 begin
 if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
 UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
 UpperCase(ExeFileName))) then
 begin
 Result := True;
 end;
 ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
 end;
 CloseHandle(FSnapshotHandle);
end;
Usage example:
procedure TForm1.Button1Click(Sender: TObject);
begin
 if processExists('calc.exe') then
 ShowMessage('process is running')
 else
 ShowMessage('process NOT running');
end;