CPUの負荷率の取得

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit


'--------------------------------
' 最も重要なところは
' modGetCpuBurdenPer標準モジュールです
' それ意外のソースは
' 折れ線グラフの描画に使用するソースです
'--------------------------------

'CPUデータバッファの数とその配列です
Private Const MATRIXCOUNT = 20
Dim m_Matrix(MATRIXCOUNT) As Single

'----------------------------
' フォームをロードしました
'----------------------------
Private Sub Form_Load()
    With Picture1
        .AutoRedraw = True
        .ScaleMode = vbPixels
        .BackColor = vbBlack
    End With
    Timer1.Interval = 100
End Sub

'----------------------------
' タイマーイベントが発生しました
'----------------------------
Private Sub Timer1_Timer()
    Dim j           As Long
    Dim lngCpuPer   As Long
    Dim lngPx   As Long
    Dim lngPy   As Long
    Dim lngPSx  As Long
    Dim lngPSy  As Long
    Dim bSpline As Boolean
    Dim tempPos(MATRIXCOUNT) As POINTAPI
    Dim n As Long
    
    'チェック状態を変数に代入します
    bSpline = CBool(Check1.Value = vbChecked)
    
    'CPUの負荷率を取得します
    lngCpuPer = GetCpuLoadFactor
    'ラベルにCPUの負荷率を表示します
    Label2.Caption = lngCpuPer & "%"
    
    'CPUデータバッファの内容をシフトします
    For j = MATRIXCOUNT - 1 To 0 Step -1 '  0 -> 1 -> 2 -> 3 -> 4
        m_Matrix(j + 1) = m_Matrix(j)
    Next
    m_Matrix(0) = lngCpuPer
    
    
    '表示内容をクリアにします
    Picture1.Cls
    
    '背景の線を描画します
    LineDDA_ColorMode = 1 'Gray
    For j = 0 To 5
        DrawLineDDA 0, (j / 5) * Picture1.ScaleHeight _
                , Picture1.ScaleWidth, (j / 5) * Picture1.ScaleHeight
    Next
    For j = 0 To 10
        DrawLineDDA (j / 10) * Picture1.ScaleWidth, 0 _
                , (j / 10) * Picture1.ScaleWidth, Picture1.ScaleHeight
    Next
    
    'CPUデータバッファを元に
    'ピクチャに描画します
    LineDDA_ColorMode = 0 'Color
    For j = 0 To MATRIXCOUNT
        '綺麗にピクチャボックスに収まるようにします
        lngPx = (Picture1.ScaleWidth / MATRIXCOUNT) * j
        lngPy = Picture1.ScaleHeight - (Picture1.ScaleHeight / 100) * m_Matrix(j)
        If j = 0 Then
            If bSpline = False Then
                DrawLineDDA lngPx, lngPy, lngPx, lngPy
            Else
                tempPos(j).x = lngPx
                tempPos(j).y = lngPy
            End If
        Else
            If bSpline = False Then
                DrawLineDDA lngPSx, lngPSy, lngPx, lngPy
            Else
                tempPos(j).x = lngPx
                tempPos(j).y = lngPy
            End If
        End If
        lngPSx = lngPx
        lngPSy = lngPy
    Next
    'チェックされているときは
    'ここで描画します
    If bSpline = True Then
        DrawSplineDDA tempPos
    End If
    
    '表示内容を更新します
    Picture1.Refresh
    
End Sub



<戻る

Sample97.lzh


http://hp.vector.co.jp/authors/VA015521/