Tipp 5.28 - CPU-Auslastung ermitteln

Wie kann ich die aktuelle CPU-Auslastung in Prozent ermitteln?

Mit dieser Funktion können Sie die aktuelle CPU-Auslastung in Prozent ermitteln. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Beispiel:

Option Explicit
 
Function GetCPULoad() As Long
'// -----------------------------------------------------
'// Methode:   | Mithilfe des WMI die aktuelle CPU-
'//            | auslastung in Prozent ermitteln
'// -----------------------------------------------------
'// Parameter: | -
'// -----------------------------------------------------
'// Rückgabe:  | Ermittelte CPU-Auslastung
'// -----------------------------------------------------
'// Autor:     | Stefan Kulpa
'//            | EDV Innovation & Consulting - Dormagen
'// -----------------------------------------------------
    On Error GoTo Err_GetCPULoad
 
    Dim objCPUSet   As Object
    Dim objCPUItem  As Object
    Dim lPercent    As Long
 
    GetCPULoad = -1
 
    Set objCPUSet = _
        GetObject("winmgmts:").InstancesOf("Win32_Processor")
 
    For Each objCPUItem In objCPUSet
        If objCPUSet.Count > 1 Then
              lPercent = _
              lPercent + objCPUItem.LoadPercentage
        Else: lPercent = objCPUItem.LoadPercentage
        End If
    Next
    If objCPUSet.Count > 1 Then _
       lPercent = _
       lPercent \ objCPUSet.Count
    GetCPULoad = lPercent
 
Exit_GetCPULoad:
    On Error Resume Next
    Set objCPUSet = Nothing
    Set objCPUItem = Nothing
    Exit Function
 
Err_GetCPULoad:
    MsgBox "Error reading CPU Usage!" & vbCrLf & _
            Err.Number & ": " & _
            Err.Description, vbExclamation
    GoTo Exit_GetCPULoad
 
End Function