Zitat von
The-X:
unter XP ist das nur die halbe Wahrheit
denn in dem Record von Process32First steht der Pfad zur Exe nicht drin
aber mit GetModuleFilenameEx nem geöffneten ProcessHandle (PROCESS_QUERY_INFORMATION or PROCESS_VM_READ) und Index 0 kommt man dem ganzen näher
ja GetModuleFilenameEx gibts nur unter
WinNT/2000/XP, deswegen benutz lieber Module32First
Delphi-Quellcode:
uses TLHelp32;
procedure TfrmMain.GetModuleList(PID: DWORD);
var
ME: TModuleEntry32;
hME: THandle;
liModule: TListItem;
begin
hME := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
ME.dwSize := sizeof(TModuleEntry32);
Module32First(hMe, ME);
repeat
liModule := lvModules.Items.Add;
liModule.Caption := ME.szModule;
liModule.SubItems.Add(ME.szExePath);
until (not Module32Next(hMe, ME));
end;