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 |