Re: Oпределение зaгрузки прoцессoрa
От: Slicer [Wirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 25.02.03 16:31
Оценка:
Здравствуйте, Kohen, Вы писали:

K>Пoдскaжите, пoжaлуйстa, кaк из прoгрaммы oпределить степень зaгрузки прoцессoрa в Win2000 и кaкoй % прoцессoрнoгo времени зaнимaет кaждый прoцесс.


Степень загрузки — подскажу. А вот по процессам не пробовал.

Есть такой хедер — pdh.h (и либа-переходник pdh.lib).
А вот кусок на Object Pascal:

procedure TForm1.FormCreate(Sender: TObject);
var
    s:string;

    Buf:array[0..MAX_COMPUTERNAME_LENGTH]of char;
    BufSz:cardinal;

    state:integer; //Если не равно 0 - ошибка
begin
  BufSz:=MAX_COMPUTERNAME_LENGTH+1;
  GetComputerName(buf,bufsz);

  s:='\Processor(_Total)\% Processor Time';

  state:=PDHOpenQuery(nil,0,hq);
  state:=PDHAddCounter(hq,@s[1],0,hc);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  state:integer;
  ctype:cardinal;
  value:TPDH_FMT_COUNTERVALUE; //В pdh.h это PDH_FMT_COUNTERVALUE
begin
  st:=PDHCollectQueryData(hq);
  st:=PdhGetFormattedCounterValue(hc,PDH_FMT_LARGE or PDH_FMT_NOSCALE,ctype,value);
  gauge1.Progress:=value.largeValue; //процент загрузки
end;


Slicer
Специалист — это варвар, невежество которого не всесторонне :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.