Текущий архив: 2004.07.04;
Скачать: 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 вся ветка
Текущий архив: 2004.07.04;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.043 c