PDHは他と比べると特殊なAPI関数セットで、VBからPDHを簡易に呼び出せるように、VB専用のAPI関数を用意している。例えば、PdhOpenQueryという通常の関数に対して、VB専用のPdhVbOpenQueryという関数が用意されている。本サンプルでは、これらVB専用関数を使用しているため、引数の数や意味など通常と異なる場合があるので、注意すること。
'宣言の例 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使用率を10秒間計測し、 '結果を表示する Private Sub Command1_Click() Dim hQuery As Long Dim hCounter As Long Dim CounterStatus As Long Dim StartTime As Single '新規クエリーのオープン PdhOpenQuery hQuery 'クエリーに、メモ帳のCPU使用率を計測するカウンタを追加 PdhAddCounter hQuery, "\Process(notepad#0)\% Processor Time", hCounter '計測開始 StartTime = Timer() PdhCollectQueryData hQuery '10秒間待機 While (Timer() - StartTime) < 10 DoEvents Wend '計測終了 PdhCollectQueryData hQuery '結果の表示 MsgBox PdhGetDoubleCounterValue(hCounter, CounterStatus) & "%" '後処理 PdhCloseQuery hQuery End Sub