Programowanie w języku Delphi » FAQ

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

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;

3 komentarze

BcbMan 2006-11-07 16:57

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
...

??

Mystic Vintage 2005-12-04 13:21

niestety to się nazywa proces :)

wotek 2005-03-18 16:06

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