Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

[КАК?]Определить загрузку ЦП?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> [КАК?]Определить загрузку ЦП?
Имя
Сообщение << Старые топики   Новые топики >>
[КАК?]Определить загрузку ЦП? - 2006-05-25 19:06:37   
TheFeaR

Сообщений: 1923
Оценки: 0
Присоединился: 2006-01-25 18:16:33
собственно сабж.
с++,windоws XP.

msdn.microsoft.com не помог.
Помогите ссылочкой или добрым словом =)
Post #: 1
[КАК?]Определить загрузку ЦП? - 2006-05-27 00:20:05   
Nerzhul

Сообщений: 45
Оценки: 0
Присоединился: 2005-02-25 22:39:02
Нашел такое решение. Надо читать из реестра HKEY_DYN_DATA\PerfStats\StatData соответствующий ключ Kernel \CPUUsage. Извини, я на Си не пишу, но могу привести код на Дельфи(который впрочем писал не я). Попробуй сам разобраться.


unit Unit1;

interface

uses
registry, windоws, SysUtils, Forms, Gauges, Classes, Controls, ExtCtrls,
StdCtrls;

type
TForm1 = class(TForm)
Gauge1: TGauge;
Timer1: TTimer;
Button1: TButton;
procedure Button1Click(Sender: TоЬjесt);
procedure Timer1Timer(Sender: TоЬjесt);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TоЬjесt);
var
def: string;
reg: TRegistry;
Buffer: array[0..1000] of integer;
begin
//——————————-
reg := TRegistry.Create;
reg.RootKey := HKEY_DYN_DATA;
def := '';
if reg.OpenKey('PerfStats\StartStat', false) = TRUE then
begin
reg.ReadBinaryData('KERNEL\CPUusage', buffer, 1000);
end;
reg.CloseKey;
Timer1.Enabled := true;

end;
//——————————-

procedure TForm1.Timer1Timer(Sender: TоЬjесt);
var
def: string;
reg: TRegistry;
B: array[1..4] of integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_DYN_DATA;
def := '';
if reg.OpenKey('PerfStats\StatData', false) = TRUE then
begin
reg.ReadBinaryData('KERNEL\CPUusage', b, 4);
end;

reg.CloseKey;
Gauge1.Progress := b[1];
Application.ProcessMessages;

//——————————-
end;

end.
Post #: 2
[КАК?]Определить загрузку ЦП? - 2006-05-27 02:20:45   
TheFeaR

Сообщений: 1923
Оценки: 0
Присоединился: 2006-01-25 18:16:33
спасибо, но не помогло.та хрень какая-то храниться в этом ключе.проверял там либо 0 либо значение больше 12000 =( абыдна =(
начинаю ненавидеть винду.
Post #: 3
[КАК?]Определить загрузку ЦП? - 2006-05-27 21:27:26   
TheFeaR

Сообщений: 1923
Оценки: 0
Присоединился: 2006-01-25 18:16:33
Решил не создвать новую тему!

Как для каждого itema в listЬох показывать свой hint? нашел код на дельфях перегнал его в С но он не пашет.Borland С++ builder.
щас имею
void __fastcall TForm1::Hint(TоЬjесt *Sender, TShiftState Shift, int X,
int Y)//обработчик OnMouseMove для listЬох-a
{
int curItem;
curItem= ListЬох1->ItemAtPos(Point(X,Y),true);..определяет индекс итема на котором сейчас мышь.
if (curIdx>=0)
{
ListЬох1->Hint=curIdx;// для примера будем в хинте выводить индекс итема
Edit1->Text=curIdx;// просто ради проверки.
}
}
так вот в косяк в том что хинт покказывается только 1 раз и все.
Application->CancelHint(); не помог.
Post #: 4
Страниц:  [1]
Все форумы >> [Веб-программинг] >> [КАК?]Определить загрузку ЦП?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.