//Процедура вывода процессов
procedure TMainForm.processinfotogrid(procinfogrid:TStringGrid);
var hsnap: Thandle;
procentry: TProcessEntry32;
k:byte;
begin
//Присваиваем значие k=1
k:=1;
//Создаем инструмент помошника 32 битной системы снимка
hsnap:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);
procentry.dwSize:=sizeof(procentry);
Process32First(hsnap,procentry);
repeat
with procinfogrid do
begin
if k>rowcount-1 then
rowcount:=rowcount+1;
cells[0,k]:=procentry.szexefile;
cells[1,k]:=inttostr(procentry.th32ProcessID);
cells[2,k]:=inttostr(procentry.cntThreads);
end;
k:=k+1;
until Process32Next(hsnap,procentry)<>true;
if k<procinfogrid.RowCount then procinfogrid.RowCount:=k;
CloseHandle(hsnap);
end;
//Процедура вывода приложений
procedure TMainForm.AppInfoToGrid(grid:TStringGrid);
var descript:TStringList;
WinCaption:array[0..255] of char;
i:word;
begin
descript:=TStringList.Create;
with descript do
begin
Clear;
EnumWindows(@AddWinInfo,LParam(descript));
end;
for i:=0 to descript.Count-1 do
begin
if i+1>grid.RowCount-1 then grid.RowCount:=grid.RowCount+1;
GetWindowText(strtoint(descript.strings),WinCaption,SizeOf(WinCaption));
grid.Cells[0,i+1]:=WinCaption;
grid.Cells[1,i+1]:=descript.strings;
end;
if grid.RowCount>i+1 then grid.RowCount:=i+1;
descript.Destroy;
end;
Диспетчер задач нужны комментарии
Уважемы форумчане, помогите пожалуйста обьяснить код коммнетраями:
Лучшая помощь для вас, это справка. Например MSDN.
во второй процедуре перебираются все активные окна и информация также помещается в StringGrid.
вообщем в первой процедуре получаем аналог вкладки процессы, а во второй приложения.
вообще сам уже не помню
Спасибо хотя бы за это! :)