Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2009, 09:37   #1
MamontSamara
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию Разработка монитора ресурсов

Разработка монитора ресурсов
MamontSamara вне форума Ответить с цитированием
Старый 22.10.2009, 09:42   #2
MamontSamara
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию

1.Вывод списка выполняющихся процессов (с автоматическим обновлением после появления нового процесса).В список должны входить:
*имя процесса
*количество дескрипторов процесса
*количество потоков процесса
*размер рабочего множества страниц процесса
*PID процесса
MamontSamara вне форума Ответить с цитированием
Старый 22.10.2009, 09:43   #3
MamontSamara
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию

Помогите кто чем может очень очень нужноdelphi
MamontSamara вне форума Ответить с цитированием
Старый 22.10.2009, 13:46   #4
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Без наработок в раздел фриланс или в раздел новогодних шуток )
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 22.10.2009, 14:02   #5
MamontSamara
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию

begin
num:=0;
Sh := CreateToolHelp32Snapshot (TH32CS_SNAPall,0);
tte.dwSize := sizeof (TTHREADEntry32);
Thread32First(sh,Tte);
Th_ID[num]:=tte.th32ThreadID;
Th_PID[num]:=tte.th32OwnerProcessID;
while Thread32Next(SH, tte) do
begin
inc(num);
Th_ID[num]:=tte.th32ThreadID;
Th_PID[num]:=tte.th32OwnerProcessID;
end;
for i:=0 to num do
begin

TH := openthread(process_all_access,false ,th_ID[i]);
THArray[i]:=TH;

GetThreadTimes(TH,TStart,TEnd,TKern el,TUser);
{FileTimeToLocalFileTime(TStart, TLoc);
FileTimeToSystemTime(TLoc,STimes);
start[i]:=STimes;
FileTimeToLocalFileTime(Tend, TLoc);
FileTimeToSystemTime(TLoc,STimes);
ends[i]:=STimes;
FileTimeToLocalFileTime(Tkernel, TLoc);
FileTimeToSystemTime(TLoc,STimes);
kernel[i]:=STimes;}
FileTimeToLocalFileTime(Tuser, TLoc);
FileTimeToSystemTime(TLoc,STimes);
user[i]:=STimes;
CloseHandle(TH);
end;
for i:=0 to num do
begin
if number=th_PID[i] then
begin
LstIt:= Form1.ListView2.Items.Add;
LstIt.Caption:= inttostr(th_id[i]);
//LstIt.SubItems.Add(IntToStr(start[i].wDay)+'.'+IntToStr(start[i].wMonth) +'.'+IntToStr(start[i].wYear)+' '+IntToStr(start[i].wHour)+':'+IntToStr(start[i].wMinute) +':'+IntToStr(start[i].wSecond)+' '+IntToStr(start[i].wMilliseconds));
//LstIt.SubItems.Add(IntToStr(kernel[i].wHour)+':'+IntToStr(kernel[i].wMinute) +':'+IntToStr(kernel[i].wSecond)+' '+IntToStr(kernel[i].wMilliseconds));
LstIt.SubItems.Add(IntToStr(user[i].wHour)+':'+IntToStr(user[i].wMinute) +':'+IntToStr(user[i].wSecond)+' '+IntToStr(user[i].wMilliseconds));
//LstIt.SubItems.Add(IntToStr(ends[i].wDay)+'.'+IntToStr(ends[i].wMonth) +'.'+IntToStr(ends[i].wYear)+' '+IntToStr(ends[i].wHour)+':'+IntToStr(ends[i].wMinute) +':'+IntToStr(ends[i].wSecond)+' '+IntToStr(ends[i].wMilliseconds));
//LstIt.SubItems.Add(IntToStr(THArray[i]));
end;
end;
closehandle(sh);

end;


procedure Get_Process_Info;
var
SH,PH: THandle;
PPE: TProcessEntry32;
Num, i: Integer;
Pr_Names: array [0..80] of string;
Pr_PID, Pr_Threads, Pr_Priority: array [0..80] of Integer;
Pr_Discr: array [0..80] of dword;
LstIt: TlistItem;
HandCount: dword;
Arr_Handle:array[0..80] of THandle;
begin
Num:=0;
SH:= CreateToolHelp32SnapShot(Th32cs_Sna pAll, 0);
PPE.dwSize:= sizeof(ProcessEntry32);
Process32First(SH,PPE);
Pr_Names[Num]:= PPE.szExeFile;
Pr_PID[Num]:= PPE.th32ProcessID;
Pr_Threads[Num]:= PPE.cntThreads;
Pr_Priority[Num]:= PPE.pcPriClassBase;
PH:= OpenProcess(Process_All_Access, false, Pr_PID[Num]);
Arr_Handle[Num]:=PH;
GetProcessHandleCount(PH, @HandCount);
Pr_Discr[Num]:= HandCount;
CloseHandle(PH);
while Process32Next(SH, PPE) do
begin
Num := Num + 1;
Pr_Names [Num]:= PPE.szExeFile;
Pr_PID[Num]:= PPE.th32ProcessID;
Pr_Priority[Num]:= PPE.pcPriClassBase;
Pr_Threads[Num]:= PPE.cntThreads;
PH:= OpenProcess(Process_All_Access, false, Pr_PID[num]);
Arr_Handle[Num]:=PH;
GetProcessHandleCount(ph, @HandCount);
Pr_Discr[Num]:=HandCount;
CloseHandle(PH);
end;
Form1.ListView1.Clear;
for i:=0 to Num do
begin
LstIt:= Form1.ListView1.Items.Add;
LstIt.Caption:= Pr_Names[i];
LstIt.SubItems.Add(IntToStr(Pr_PID[i]));
LstIt.SubItems.Add(IntToStr(Pr_Prio rity[i]));
LstIt.SubItems.Add(IntToStr(Pr_Thre ads[i]));
if Arr_Handle[i]=0 then
LstIt.SubItems.Add('0')
else
LstIt.SubItems.Add(IntToStr(Pr_Disc r[i]));
end;
CloseHandle(SH);
end;

Procedure Sort;
var
i,Count:Integer;
begin
Form1.Timer1.Enabled:= false;
Count:= Form1.ListView1.Items.Count-1;
i:= 0;
repeat

begin
Form1.ListView1.Items[i].Delete;
i:= i-1;
Count:= Count-1;
end;
inc(i);
until i= Count+1
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i,Num,Index: Integer;
Found: boolean;
SH: THandle;
PPE: TProcessEntry32;
Pr_PID: array [0..80] of Integer;
begin
Num:= 0;
Index:= 0;
SH:= CreateToolHelp32SnapShot(Th32cs_Sna pAll, 0);
PPE.dwSize:= sizeof(ProcessEntry32);
Process32First(SH, PPE);
Pr_PID[Num]:= PPE.th32ProcessID;
while Process32Next(SH, PPE) do
begin
Num := Num + 1;
Pr_PID[Num]:= PPE.th32ProcessID;
end;
if ListView1.Items.Count<>Num+1 then
Get_Process_Info
else
while Index<=ListView1.Items.Count-1 do
begin
Found:= false;
for i:= 0 to Num do
if StrToInt(Listview1.Items[Index].SubItems[0])=Pr_PID[i] then
Found:=true;
if Found=false then
begin
Get_Process_Info;
break;
end
else
inc(Index);
end;
end;
MamontSamara вне форума Ответить с цитированием
Старый 22.10.2009, 14:06   #6
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

На форуме была целая куча исходников диспечеров задач и прочего. Вот от туда и отталкивайся.
Вавел из ГМТУ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт ресурсов JNLYSk Общие вопросы Delphi 0 10.09.2009 01:23
файл ресурсов Rozalinda Общие вопросы Delphi 3 20.10.2008 20:31
Фаил ресурсов Лёка Общие вопросы Delphi 13 14.05.2008 18:08
Файл ресурсов Stanislav Общие вопросы Delphi 11 21.11.2007 08:27
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления WaxeP Win Api 9 15.04.2007 18:12