![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 22.10.2009
Сообщений: 4
|
![]()
Разработка монитора ресурсов
|
![]() |
![]() |
![]() |
#2 |
Регистрация: 22.10.2009
Сообщений: 4
|
![]()
1.Вывод списка выполняющихся процессов (с автоматическим обновлением после появления нового процесса).В список должны входить:
*имя процесса *количество дескрипторов процесса *количество потоков процесса *размер рабочего множества страниц процесса *PID процесса |
![]() |
![]() |
![]() |
#3 |
Регистрация: 22.10.2009
Сообщений: 4
|
![]()
Помогите кто чем может очень очень нужно
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 27.07.2009
Сообщений: 547
|
![]()
Без наработок в раздел фриланс или в раздел новогодних шуток )
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 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; |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 19.06.2009
Сообщений: 896
|
![]()
На форуме была целая куча исходников диспечеров задач и прочего. Вот от туда и отталкивайся.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Экспорт ресурсов | 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 |