Вниз
Скачать: CL | DM;

Как получить имя и путь всех процессов?   Найти похожие ветки 

← →
Seldon ©   (2004-05-25 01:30) [0]

Как получить имя и путь всех процессов? Я делаю так:


uses
 TlHelp32;

procedure TListForm.btnRefreshClick(Sender: TObject);
var
 SShot:Cardinal;
 Entry:TProcessEntry32;
 MN:String;
begin
 lbProc.Clear;

 SShot:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 Entry.dwSize:=SizeOf(TProcessEntry32);

 Process32First(SShot,Entry);
 repeat
   MN:="";
   SetString(MN,Entry.szExeFile,StrLen(Entry.szExeFile));
   MN:=AnsiLowerCase(MN);
   if (lbProc.Items.IndexOf(MN)=-1)and(MN<>"[system process]")then
     lbProc.Items.Add(MN);
 until not Process32Next(SShot,Entry);

 CloseHandle(SShot);
end;


В результате получаю список имён вида "explorer.exe", "winamp.exe" - т.е. без пути к файлу. Но это противоречит справке:


PROCESSENTRY32
szExeFile - Path and filename of the executable file for the process.


Может я чего-то не так понимаю?


← →
Kerk ©   (2004-05-25 08:25) [1]

В XP там только имя файла, полный путь в 9x.
Сам с этим мучался.


← →
Seldon ©   (2004-05-25 17:37) [2]

>Kerk ©   (25.05.04 08:25) [1]
Действительно, при выставлении exe"шнику режима совместимости с 98/ME этот же код возвращает полные пути.

А можно их получить без таких извращений?


← →
panov ©   (2004-05-25 19:00) [3]

>Seldon ©   (25.05.04 17:37) [2]
Можно.

var
 hs: THandle;
 me: MODULEENTRY32;
begin

hs := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS+TH32CS_SNAPMODULE,0);
 try
   if hs=INVALID_HANDLE_VALUE then Exit;
   me.dwSize := SizeOf(me);
   if Module32First(hs,me) then
   begin
     repeat
       Memo1.Lines.Add(me.szExePath);
     until not Module32Next(hs,me);
   end;
 finally
   CloseHandle(hs);
 end;


← →
Seldon ©   (2004-05-25 21:57) [4]

>panov ©   (25.05.04 19:00) [3]
В данном случае получаю список загруженных DLL"ок (с путями) и один EXE файл (тоже с путём) - та самая программа, которая сожержит этот код.


← →
Игорь Шевченко ©   (2004-05-25 22:05) [5]

В XP - GetModuleFileNameEx, или вынимать CommandLine из PEB, как в http://www.schevchenko.net.ru/SRC/EnumFunctions_60.zip



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-1087162008
VID
2004-06-14 01:26
2004.07.04
Просто замучился искать....


3-1086604103
Марат
2004-06-07 14:28
2004.07.04
Перекрестный запрос


6-1084219742
ZDDR
2004-05-11 00:09
2004.07.04
idudpserver1


6-1083910065
Srg
2004-05-07 10:07
2004.07.04
idTCPServer, IP-адрес клиента


14-1087197217
AlexG
2004-06-14 11:13
2004.07.04
Word не хочет применять стиль к тексту, скопированному из IE




   Наверх