Die Community zu .NET und Classic VB.
Menü

FAQ 0022: Wie kann ich die CPU-ID auslesen?

 von 

Frage 

Wie kann ich die ID meiner CPU auslesen?

Beispiel  

Intel hatte diese ID mit der Pentium III-Reihe eingeführt. Nach weltweitem Protest seitens Daten- und Verbraucherschützer hat Intel sich dazu durchgerungen, die Abfrage der ID vom BIOS steuern zu lassen. Im BIOS des Mainboards kann man nun auswählen, ob die ID ausgelesen werden kann.

Bis heute haben nur CPUs von Intel diese ID, und hier auch erst ab Pentium III. Es gab mal ein Gerücht, daß AMD diese ID auch einführen möchte, bisher ist es aber bei dem Gerücht geblieben. Alle anderen Hersteller, die x86-kompatible CPUs anbieten, bieten diese ID nicht an.

In unserem Forum wurde eine Lösung gepostet, welche in leicht abgewandelter Form hier gezeigt wird:

Sub GetCPUData(Optional ByVal strComputerName As String = ".")
    '   Steht im Computername ein Punkt, ist der lokale Rechner
    '   gemeint. Wird ein Computer mit seinem Namen
    '   angesprochen, so sind die führenden (Back-)Slashs
    '   wegzulassen.
    
    '   Fehlerbehandlung
    On Error Resume Next
    
    Dim strSQL As String
    Dim strWMI As String
    
    Dim oWMI As Object
    Dim objItem As Object
    
    Dim lngOldMouse As Long
    
    '   Mousecursor setzen (es ist eine längere Abfrage)
    lngOldMouse = Me.MousePointer
    Me.MousePointer = vbHourglass
    
    '   Abfragen festlegen
    strSQL = "Select * from Win32_Processor"
    strWMI = "winmgmts:\\" & strComputerName & "\root\cimv2"
    
    '   Abfrage durchführen
    Set oWMI = GetObject(strWMI).ExecQuery(strSQL)
 
    '   Alle zurückgegebenen Objekte durchlaufen
    For Each objItem In oWMI
        '   Gerätebezeichnung der CPU ausgeben
        Debug.Print "Prozessor   : " & objItem.DeviceID
        '   Name der CPU ausgeben
        Debug.Print "  Name      : " & objItem.Name
        '   maximale Taktfrequenz der CPU ausgeben
        Debug.Print "  Takt (MHz): " & objItem.MaxClockSpeed
        '   Prozessor-ID der CPU ausgeben
        Debug.Print "  CPU ID    : " & objItem.ProcessorId
    Next
    
    '   Mousecoursor zurücksetzen
    MousePointer = lngOldMouse
End Sub

Listing 1: CPU-Informationen mittels WMI auslesen

Nachtrag von Florian Rittmeier:
Auf http://www.thevbzone.com/ ist eine Datei namens VBCPUInf.zip zu finden, die einige Informationen zu Intel-basierten CPUs ermitteln kann.

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.