Windows - listando processos

Top  Previous  Next

uses tlhelp32;

 

 

var 

   Proc   : TProcessEntry32; 

   Snap   : THandle; 

begin

   Snap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0); 

   Proc.dwSize := SizeOf(TProcessEntry32); 

   Process32First(Snap,Proc); 

   repeat 

     ListBox1.Items.Add(Proc.szExeFile);

   until (not Process32Next(Snap,Proc)); 

end;

 

// ----------------- abaixo em forma de funcao para WinXP, 98 e 95 --------------

 

uses TLHelp32;

 

function ProcessoAtivo(const NomeExe: string): Boolean;

var

  Proc: TProcessEntry32;

  Snap: THandle;

  L   : TStringList;

begin

  L           := TStringList.Create;

  Snap        := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);

  Proc.dwSize := SizeOf(TProcessEntry32);

  Process32First(Snap,Proc);

  repeat

    L.Add(UpperCase(ExtractFileName(Proc.szExeFile)));

  until (not Process32Next(Snap,Proc));

  Result := (L.IndexOf(NomeExe) > -1);

end;