ab.com コミュニティ
https://www.activebasic.com/forum/

Windows 9x での CPU 使用率の取得
https://www.activebasic.com/forum/viewtopic.php?t=1980
ページ 11

作成者:  M.S. [ 2007年6月16日(土) 14:41 ]
記事の件名:  Windows 9x での CPU 使用率の取得

コード:
Const SIZE_OF_LONG = 4

' ボタンをクリックすると、CPU の使用率が取得できます。
Sub MainWnd_CommandButton1_Click()
	Dim CPUUsage As Long
	Dim ValueSize As Long
	Dim hKey As HKEY

	'HKEY_DYN_DATAの“\PerfStats\StartStat\KERNEL\CPUUsage”という値を
	'クエリーすることにより、CPU使用率の計測が開始される。
	ValueSize = SIZE_OF_LONG
	RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StartStat", 0, KEY_QUERY_VALUE, hKey)
	RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, 0, VarPtr(CPUUsage), VarPtr(ValueSize))
	RegCloseKey(hKey)

	'一秒間計測
	Sleep(1000)
	    
	'実際のCPU使用率は“\PerfStats\StatData\KERNEL\CPUUsage"という値で
	'取得できる。
	ValueSize = SIZE_OF_LONG
	RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StatData", 0, KEY_QUERY_VALUE, hKey)
	RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, 0, VarPtr(CPUUsage), VarPtr(ValueSize))
	RegCloseKey(hKey)

	'計測結果を表示
	dim Usage[255] as Byte
	wsprintf(Usage,"%d %",CPUUsage)
	MsgBox hMainWnd,Usage,0,MB_OK

	'計測を終了するには、“\PerfStats\StopStat\KERNEL\CPUUsage”という
	'値をクエリーする。
	ValueSize = SIZE_OF_LONG
	RegOpenKeyEx(HKEY_DYN_DATA, "PerfStats\StopStat", 0, KEY_QUERY_VALUE, hKey)
	RegQueryValueEx(hKey, "KERNEL\CPUUsage", 0, 0, VarPtr(CPUUsage), VarPtr(ValueSize))
	RegCloseKey(hKey)
End Sub
よく検索すると見つかるもんなんですね。(笑)

因みに、システムモニタと見比べてみると、誤差が生じるときがあります。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/