Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0420: Prozessortyp ermitteln

 von 

Beschreibung 

Der jeweilige Prozessortyp steht in der Registry und kann von daher mit einem einamligen Zugriff ausgelesen werden.

Schwierigkeitsgrad:

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

RegCloseKey, RegOpenKeyExA (RegOpenKeyEx), RegQueryValueExA (RegQueryValueEx)

Download:

Download des Beispielprojektes [2,42 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
' Es muss ein Verweis auf 'Standard OLE Types' gesetzt werden.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label2"
' Steuerelement: Beschriftungsfeld "Label1"


'Autor: Orti
'Email: orti@planet-interkom.de

Option Explicit

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _
        Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal _
        lpSubKey As String, ByVal ulOptions As Long, ByVal _
        samDesired As Long, phkResult As Long) As Long
        
Private Declare Function RegCloseKey Lib "advapi32.dll" _
        (ByVal hKey As Long) As Long
        
Private Declare Function RegQueryValueEx Lib "advapi32.dll" _
        Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal _
        lpValueName As String, ByVal lpReserved As Long, _
        lpType As Long, lpData As Any, lpcbData As Any) As Long
          
Const HKEY_LOCAL_MACHINE As Long = &H80000002

Const KEY_QUERY_VALUE As Long = &H1&
Const KEY_ENUMERATE_SUB_KEYS As Long = &H8&
Const KEY_NOTIFY As Long = &H10&

Const KEY_READ = KEY_QUERY_VALUE Or _
                 KEY_ENUMERATE_SUB_KEYS _
                 Or KEY_NOTIFY

Const ERROR_SUCCESS As Long = 0&
Const REG_SZ As Long = 1&

Function RegValueGet(Root As Long, Key As String, Field As String, _
    Value As Variant) As Long
    
    Dim Result As Long, hKey As Long, dwType As Long
    Dim Lng As Long, l As Long
    Dim Buffer As String
    
    'Wert aus einem Feld der Registry auslesen
    Result = RegOpenKeyEx(Root, Key, 0, KEY_READ, hKey)
    If Result = ERROR_SUCCESS Then
        Result = RegQueryValueEx(hKey, Field, 0&, dwType, ByVal 0&, l)
        
        If Result = ERROR_SUCCESS Then
            If dwType = REG_SZ Then
                Buffer = Space$(l + 1)
                Result = RegQueryValueEx(hKey, Field, 0&, _
                                     dwType, ByVal Buffer, l)
          
                If Result = ERROR_SUCCESS Then Value = Buffer
            End If
        End If
    End If
    
    If Result = ERROR_SUCCESS Then Result = RegCloseKey(hKey)
    RegValueGet = Result
End Function

Private Sub Command1_Click()
    Dim Result As Long
    Dim Value As Variant
    
    'Prozessortyp auslesen
    Result = RegValueGet(HKEY_LOCAL_MACHINE, _
                         "Hardware\Description\System\" & _
                         "CentralProcessor\0", _
                         "Identifier", Value)
                         
    If Result = 0 Then
        Label1.Caption = CStr(Value)
        Label2.Caption = "Ok"
    Else
        Label1.Caption = ""
        Label2.Caption = "Fehler"
    End If
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen 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.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Günter Getrost am 28.01.2003 um 14:04

Hallo,
Wie kann ich den String "x86 Family 6 Model 7 Stepping 0" auswerten ?
Gibt es hierfür eine Tabelle?

Kommentar von Günter Getrost am 24.01.2003 um 10:14

Kommentar von ph03n1x am 07.07.2002 um 23:37

Wieso funktioniert das mit DWORD-werten nicht? Wie muss man diese einlesen?