お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE^2:CPU使用率の取得クラス[Win95専]"

この発言は
#00909 紅月 燐火 さんのRE:CPU使用率の取得[Win95専]
に対するコメントです

//クラスにした物です。 TSystemState = class(TObject) private function GetUsage: Integer; function GetThreads: Integer; protected function GetData(const ValueName: String): Integer; public constructor Create; virtual; destructor Destroy; override; property Usage: Integer read GetUsage; property Threads: Integer read GetThreads; {...省略...} end; implementation uses Registry; { TSystemState } constructor TSystemState.Create; 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; destructor TSystemState.Destroy; 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; inherited Destroy; end; function TSystemState.GetData(const ValueName: String): Integer; var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_DYN_DATA; if Reg.OpenKey('\PerfStats\StatData', False) then begin Reg.ReadBinaryData(ValueName, Result, SizeOf(Integer)); end else Result := -1; finally Reg.Free; end; end; function TSystemState.GetThreads: Integer; begin Result := GetData('KERNEL\Threads'); end; function TSystemState.GetUsage: Integer; begin Result := GetData('KERNEL\CPUUsage'); end; {後はプロパティを追加してGetDataに取得したいデータ名を指定するだけで拡張 できます。(データ名はレジストリのHKEY_DYN_DATA\PerfStats\StatDataを参照)} 紅月 燐火(BZF05041) Original document by 紅月 燐火 氏 ID:(BZF05041)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum