16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:CPU使用率の取得[Win95専]"
この発言は #00514 紅月 燐火 さんのCPU使用率の取得[Win95専] に対するコメントです
この発言に対し以下のコメントが寄せられています
#00910 紅月 燐火 さん RE^2:CPU使用率の取得クラス[Win95専]
{
改訂版です。
システムモニターと同じくCPU使用率(利用率?)を取得します。
フォームにTTimer・TGaugeを配置してください。usesにRegistryも付け加えてく
ださい。
Win95とWin98で動作しますが、WinNT4.0では動作しません。
}
procedure TForm1.FormCreate(Sender: TObject);
var
Reg: TRegistry;
Values: TStringList;
i, Buf: Integer;
begin
Reg := TRegistry.Create;
Values := TStringList.Create;
try
Reg.RootKey := HKEY_DYN_DATA;
Reg.OpenKey('\PerfStats\StartStat', False);
//実際は必要のあるデータだけ読み出せばいい様ですが、
//ここでは全部読み出すことにしています。
Reg.GetValueNames(Values);
for i := 0 to Values.Count -1 do
Reg.ReadBinaryData(Values[i], Buf, SizeOf(Integer));
finally
Reg.Free;
Values.Free;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Reg: TRegistry;
Usage : Integer;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_DYN_DATA;
if Reg.OpenKey('\PerfStats\StatData', False) then
begin
//バイナリデータを読み出します。
Reg.ReadBinaryData('KERNEL\CPUUsage', Usage, 4);
Gauge1.Progress := Usage;
end;
finally
Reg.Free;
end;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
Reg: TRegistry;
Values: TStringList;
i, Buf: Integer;
begin
Reg := TRegistry.Create;
Values := TStringList.Create;
try
Reg.RootKey := HKEY_DYN_DATA;
Reg.OpenKey('\PerfStats\StopStat', False);
Reg.GetValueNames(Values);
for i := 0 to Values.Count -1 do
Reg.ReadBinaryData(Values[i], Buf, SizeOf(Integer));
finally
Reg.Free;
Values.Free;
end;
end;
// 紅月 燐火(BZF05041)
Original document by 紅月 燐火 氏 ID:(BZF05041)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|