| |
Fortgeschrittene ProgrammierungWMI Win32_Processor für win 98 und 95 | | | Autor: Dominik S. | Datum: 10.02.04 17:31 |
| Hi,
diesmal habe ich eine frage zu eine Alternative zur Win32_Processor Class von WMI.
Denn mein Programm soll auch unter 98 laufen [u.U. auch 95]. Jedoch ist laut SDK vom M$ diese Klasse erst ab "Windows NT Workstation 4.0 SP4 and later" verfügbar.
Nun habe ich mich gefragt, ob es nicht auch eine andere Möglichkeit gibt, an den Prozessor Speed des Computers heranzukommen. Ich brauche ihn um zu entscheiden, wie viel Pixel ich in eine Picturebox malen kann, ohne dass der Anwender bei einem 500MHz Rechner 7 Min warten muss.
Ich benutze immoment folgenden Code der auch perfekt funktioniert [jedoch nur ab NT4.0SP4]Public Sub ShowCPUProperties()
On Error Resume Next
' WMI-Objekte
Dim objQuery As Object, objField As Object
' Collection für CPU-Daten (es können ja mehrere CPU's vorhanden sein)
Dim mCol As Collection, Data As CPUDatas
' Collection initialisieren
Set mCol = New Collection
' WMI-Abfrage ausführen
Set objQuery = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select *" & _
"from Win32_Processor")
' wenn irgendetwas gefunden wurde, dann weiter
If Not objQuery Is Nothing Then
' objQuery enthält für jede CPU einen Eintrag
For Each objField In objQuery
' wenn Daten vorhanden, dann weiter
If Trim(objField.CurrentClockSpeed) <> "" Or Trim( _
objField.Manufacturer) <> "" Then
' Data initialisieren bzw. neu machen
Set Data = New CPUDatas
' Daten lesen
With Data
.CPUIndex = mCol.Count + 1
.Speed = objField.CurrentClockSpeed & "MHz"
.Manufacturer = objField.Manufacturer
End With
' Data In Collection schreiben
mCol.Add Data
End If
Next
End If
' WMI-Objekte freigeben
Set objField = Nothing
Set objQuery = Nothing
' wenn nix gefunden wurde, dann Nachricht
If mCol.Count = 0 Then
MsgBox "Die Prozessordaten konnten nicht ermittelt werden."
Else
' wurden Daten gefunden, dann ausgeben
Dim I As Long
For I = 1 To mCol.Count
Set Data = mCol.Item(I)
CPUHersteller = Data.Manufacturer
CPUTaktfrequenz = Data.Speed _
'<----------------------------Eigentlich brauche ich nur diesen
' Wert
CPUAnzahl = CStr(Data.CPUIndex)
Next I
End If
' Collection freigeben
Set Data = Nothing
Set mCol = Nothing
End Sub und folgende KlasseOption Explicit
Public CPUIndex As Long
Public Speed As String
Public Manufacturer As String Hoffe ihr kennt eine Möglichkeit an den CPU Speed unter Win 98 [95] heranzukommen. Ich meine Windows schafft dass ja auch unter 98 und 95
"Das Leben ist eine Trag?die f?r die, die f?hlen und eine Kom?die f?r die, die denken." [Jean de la Bruyere]
In diesem Sinne
cu all | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|