Jak uzyskać listę plików ( EXE) uruchomionych w systemie

Adam Boduch

Trzeba w tym celu skorzystać z nisko poziomowych funkcji API:

uses TlHelp32;

procedure TForm1.btnAddEXEClick(Sender: TObject);
var
  _HWND : THandle;
  Proc : TProcessEntry32;
begin
  _HWND := CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);

  Proc.dwSize:=SizeOf(Proc); // okresl rozmiar struktory

  if Integer(Process32First(_HWND, Proc)) <> 0 then
  repeat
    ListBox1.Items.Add(Proc.szExeFile); // dodaje sciezkie pliku do ListBox'a
  until Integer(Process32Next(_HWND, Proc)) = 0; // dopoki wartosc nie osiagnie 0

  CloseHandle(_HWND);
end;
FAQ

3 komentarzy

Powyższy kod wyświetla listę nazw plików, np.:
gg.exe
winword.exe
...

a jak odczytać pełne ścieżki dostępu do tych plików, np.
C:\Program Files\Gadu-Gadu\gg.exe
C:\Program Files\Microsoft Office\OFFICE10\winword.exe
...

??

niestety to się nazywa proces :)

to sie nazywa "proces", a nie "plik" :P