Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизProcess32First, Process32Next... Найти похожие ветки
← →
Леприкон © (2004-03-04 10:28) [0]
function ProcessWalk(SG:TStringGrid):boolean;
label EndLabel;
var hSnapShot,
hSnapModule,
hProcess:THandle;
lppe:PROCESSENTRY32;
lpme:MODULEENTRY32;
begin
Result:=false;
SG.RowCount:=2;
SG.FixedRows:=1;
SG.ColCount:=7;
SG.FixedCols:=1;
hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);
if Process32First(hSnapShot,lppe) then
begin
//SG.Cells[0,SG.RowCount-1]:=IntToStr(SG.RowCount-1);
SG.Cells[1,SG.RowCount-1]:=lppe.szExeFile;
SG.Cells[3,SG.RowCount-1]:=IntToStr(lppe.th32ProcessID);
SG.Cells[4,SG.RowCount-1]:=IntToStr(lppe.th32ParentProcessID);
SG.Cells[5,SG.RowCount-1]:=IntToStr(lppe.cntThreads);
SG.Cells[6,SG.RowCount-1]:="running";
end
else
Goto EndLabel;
while Process32Next(hSnapShot,lppe) do
begin
SG.RowCount:=SG.RowCount+1;
SG.Cells[0,SG.RowCount-1]:=IntToStr(SG.RowCount-1);
SG.Cells[1,SG.RowCount-1]:=lppe.szExeFile;
hSnapModule:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,lppe.th32ProcessID);
if Module32First(hSnapModule,lpme) then
SG.Cells[2,SG.RowCount-1]:=lpme.szExePath
else
SG.Cells[2,SG.RowCount-1]:="unknown";
CloseHandle(hSnapModule);
SG.Cells[3,SG.RowCount-1]:=IntToStr(lppe.th32ProcessID);
SG.Cells[4,SG.RowCount-1]:=IntToStr(lppe.th32ParentProcessID);
SG.Cells[5,SG.RowCount-1]:=IntToStr(lppe.cntThreads);
SG.Cells[6,SG.RowCount-1]:="running";
end;
Result:=true;
EndLabel:
CloseHandle(hSnapShot);
end;
Почему, если открыть закоментированную строку, то функция не работает?
← →
Kerk © (2004-03-04 12:03) [1]Дело не в той строке, IMHO
Установи в самом начале размер структуры, вроде этого:lppe.size := sizeof(lppe);
← →
Леприкон © (2004-03-04 13:26) [2]
> Kerk © (04.03.04 12:03) [1]
Ты прав, забыл. Руки мне оторвать. :))
lppe.dwSize:=SizeOf(lppe);
lpme.dwSize:=SizeOf(lpme); вернуло всё к жизни.
Спасибо.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.065 c