[КАК?]Определить загрузку ЦП?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
[КАК?]Определить загрузку ЦП? - 2006-05-25 19:06:37
|
|
|
TheFeaR
Сообщений: 1923
Оценки: 0
Присоединился: 2006-01-25 18:16:33
|
собственно сабж. с++,windоws XP.
msdn.microsoft.com не помог. Помогите ссылочкой или добрым словом =)
|
|
|
[КАК?]Определить загрузку ЦП? - 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.
|
|
|
[КАК?]Определить загрузку ЦП? - 2006-05-27 02:20:45
|
|
|
TheFeaR
Сообщений: 1923
Оценки: 0
Присоединился: 2006-01-25 18:16:33
|
спасибо, но не помогло.та хрень какая-то храниться в этом ключе.проверял там либо 0 либо значение больше 12000 =( абыдна =( начинаю ненавидеть винду.
|
|
|
[КАК?]Определить загрузку ЦП? - 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(); не помог.
|
|
|
|
|