「CPU使用率の取得と表示」の編集履歴(バックアップ)一覧に戻る

CPU使用率の取得と表示 - (2010/01/26 (火) 23:43:50) のソース

#asciiart(blockquote){
#console

Declare Function PdhOpenQuery Lib "pdh" Alias "PdhVbOpenQuery" ( _
	ByRef QueryHandle As Long) As Long

Declare Function PdhAddCounter Lib "pdh" Alias "PdhVbAddCounter" ( _
	ByVal QueryHandle As Long, _
	ByVal CounterPath As String, _
	ByRef CounterHandle As Long) As Long

Declare Function PdhCollectQueryData Lib "pdh" ( _
	ByVal QueryHandle As Long) As Long

Declare Function PdhGetDoubleCounterValue Lib "pdh" _
	Alias "PdhVbGetDoubleCounterValue" ( _
	ByVal CounterHandle As Long, _
	ByRef CounterStatus As Long) As Double

Declare Function PdhCloseQuery Lib "pdh" ( _
	ByVal QueryHandle As Long) As Long

'CPU使用率を返す(%)
Function GetCPUutilization(wait As Long) As Long
	Dim hQuery As Long
	Dim hCounter As Long
	Dim CounterStatus As Long

	PdhOpenQuery(hQuery)
	PdhAddCounter( hQuery, "\Processor(_Total)\% Processor Time", hCounter)
	PdhCollectQueryData( hQuery)
	Sleep(wait)
	PdhCollectQueryData( hQuery)
	GetCPUutilization = PdhGetDoubleCounterValue(hCounter, CounterStatus)
	PdhCloseQuery( hQuery)
End Function

Dim cnt As Long
cnt = 100
While cnt
	Print GetCPUutilization(500)
	cnt = cnt -1
Wend

End
}