Heute möchte ich euch zeigen, wie man die OpenHardwareMonitorLib benutzt.
Diese ist ganz einfach zu benutzen. Hier könnt ihr den OpenHardwareMonitor downloaden.
Dann müsst ihr die ZIP entpacken, Projekt öffnen/neues beginnen, einen Verweis auf "OpenHardwareMonitorLib.dll" hinzufügen.
Wichtig: Ihr müsst VS mir Administratorrechten starten und diese auch dem Programm geben!
Für's erste war es das mal, dann fangen wir mal an.
Folgendermaßen sind die Kapitel eingeteilt:
Kapitel 1: CPU
Ihr wolltet schon immer die Temperatur des Prozessor auslesen und habt "Nicht unterstützt" bekommen?
Dass wird jetzt anders. Dank dem Auslesen der DTS(Digital Thermal Sensors) funktioniert das jetzt!
Als erstes Importieren wir mal das benötigte:
Um die Infos auszulesen, müssen wir einen Computer "deklaieren"
Um jetzt die CPU-Infos zu bekommen, müsst ihr ins Load-Event folgenden Code:
Info: Die Open-Funktion nimmt einige Zeit in Anspruch. Es wäre sinnvoll, alles in einen eigenen Thread zu verlagern.
Dann Erstellen wir eine Funktion, wo man den gewünschten Kern nullbasiert angeben muss, und diese gibt
Dann finde wir jede einzelne Hardware heraus und überprüfen, ob diese vom Typ CPU ist:
Dann finde wir jeden einzelnen Sensor heraus und überprüfen, ob dieser vom Typ Temperature ist:
Und dann noch der Schluss:
Ihr könnt es auch gleich für andere Sachen verwenden, aber für den aktuellen Takt(Clock) braucht man folgenden Code, da der Bus Index 0 ist:
Zum Schluss noch eine Zusammenfassung:
Edit://Rückgabewerte auf Zahlen geändert
Nächstes Kaptitel: Kapitel 2: HDD
ch hoffe es war hilfreich für euch.
Grüße,
Luki-Progger
Diese ist ganz einfach zu benutzen. Hier könnt ihr den OpenHardwareMonitor downloaden.
Dann müsst ihr die ZIP entpacken, Projekt öffnen/neues beginnen, einen Verweis auf "OpenHardwareMonitorLib.dll" hinzufügen.
Wichtig: Ihr müsst VS mir Administratorrechten starten und diese auch dem Programm geben!
Für's erste war es das mal, dann fangen wir mal an.
Folgendermaßen sind die Kapitel eingeteilt:
- CPU
- HDD
- Mainboard
- GPU
Kapitel 1: CPU
Ihr wolltet schon immer die Temperatur des Prozessor auslesen und habt "Nicht unterstützt" bekommen?
Dass wird jetzt anders. Dank dem Auslesen der DTS(Digital Thermal Sensors) funktioniert das jetzt!
Als erstes Importieren wir mal das benötigte:
Um die Infos auszulesen, müssen wir einen Computer "deklaieren"
Um jetzt die CPU-Infos zu bekommen, müsst ihr ins Load-Event folgenden Code:
Info: Die Open-Funktion nimmt einige Zeit in Anspruch. Es wäre sinnvoll, alles in einen eigenen Thread zu verlagern.
Dann Erstellen wir eine Funktion, wo man den gewünschten Kern nullbasiert angeben muss, und diese gibt
'Temperature' °C
zurückDann finde wir jede einzelne Hardware heraus und überprüfen, ob diese vom Typ CPU ist:
Dann finde wir jeden einzelnen Sensor heraus und überprüfen, ob dieser vom Typ Temperature ist:
VB.NET-Quellcode
- For Each Sensor In Hardware.Sensors 'Jeden Sensor heraussuchen
- If Sensor.SensorType = SensorType.Temperature Then ' Da wir die Temperatur brauchen überprüfen wir, ob der aktuelle Sensor die Temperatur ausliest.
- If Sensor.Index = Core Then 'Überprüfen, ob der aktuelle Index der gewünschte Kern ist
- Return CDbl(Sensor.Value) 'Wenn alles passt (CPU, Temperatur-Sensor, Kern), wird der Wert zurückgegeben (MH/z)
- End If
- End If
- Next
Und dann noch der Schluss:
Ihr könnt es auch gleich für andere Sachen verwenden, aber für den aktuellen Takt(Clock) braucht man folgenden Code, da der Bus Index 0 ist:
VB.NET-Quellcode
- Private Function GetCoreClock(ByVal Core As Integer) As String
- For Each Hardware In Computer.Hardware 'Jede einzelne Hardware heraussuchen
- Hardware.Update() 'Die Werte aktualisieren
- If Hardware.HardwareType = HardwareType.CPU Then 'Da wir die CPU brauchen, überprüfen wir, ob die aktuelle Hardware die CPU ist.
- For Each Sensor In Hardware.Sensors 'Jeden Sensor heraussuchen
- If Sensor.SensorType = SensorType.Temperature Then ' Da wir die Temperatur brauchen überprüfen wir, ob der aktuelle Sensor die Temperatur ausliest.
- If Sensor.Index = Core + 1Then 'Überprüfen, ob der aktuelle Index der gewünschte Kern ist, aber da auch noch der Bus-Speed exisiert, muss man hier Core + 1 überprüfen
- Return CDbl(Sensor.Value) 'Wenn alles passt (CPU, Temperatur-Sensor, Kern), wird der Wert zurückgegeben (MH/z)
- End If
- End If
- Next
- End If
- Next
- Return 0.0 'Wenn nichts gefunden wurde, wird '0.0" zurückgegeben.
- End Function
Zum Schluss noch eine Zusammenfassung:
VB.NET-Quellcode
- Imports OpenHardwareMonitor.Hardware
- Public Class Form1
- Dim Computer As New Computer
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Click
- Computer.CPUEnabled = True 'Dass er bei .Open() nur die CPU-Daten holt
- Computer.Open() 'Öffnet die Funktion zum holen der Information
- For i = 0 To Environment.ProcessorCount - 1 'Alle Kerne werden ermittelt
- MessageBox.Show("Core temperature " & i + 1 & ": " & GetCoreTemp(i)) 'Für jeden Kern wird die Temperatur angezeigt.
- Next
- End Sub
- Private Function GetCoreTemp(ByVal Core As Integer) As String
- For Each Hardware In Computer.Hardware 'Jede einzelne Hardware heraussuchen
- Hardware.Update() 'Die Werte aktualisieren
- If Hardware.HardwareType = HardwareType.CPU Then 'Da wir die CPU brauchen, überprüfen wir, ob die aktuelle Hardware die CPU ist.
- For Each Sensor In Hardware.Sensors 'Jeden Sensor heraussuchen
- If Sensor.SensorType = SensorType.Temperature Then ' Da wir die Temperatur brauchen überprüfen wir, ob der aktuelle Sensor die Temperatur ausliest.
- If Sensor.Index = Core Then 'Überprüfen, ob der aktuelle Index der gewünschte Kern ist
- Return CDbl(Sensor.Value) 'Wenn alles passt (CPU, Temperatur-Sensor, Kern), wird der Wert zurückgegeben (MH/z)
- End If
- End If
- Next
- End If
- Next
- Return 0.0 'Wenn nichts gefunden wurde, wird '0.0" zurückgegeben.
- End Function
- Private Function GetCoreClock(ByVal Core As Integer) As Double
- For Each Hardware In Computer.Hardware 'Jede einzelne Hardware heraussuchen
- Hardware.Update() 'Die Werte aktualisieren
- If Hardware.HardwareType = HardwareType.CPU Then 'Da wir die CPU brauchen, überprüfen wir, ob die aktuelle Hardware die CPU ist.
- For Each Sensor In Hardware.Sensors 'Jeden Sensor heraussuchen
- If Sensor.SensorType = SensorType.Temperature Then ' Da wir die Temperatur brauchen überprüfen wir, ob der aktuelle Sensor die Temperatur ausliest.
- If Sensor.Index = Core + 1 Then 'Überprüfen, ob der aktuelle Index der gewünschte Kern ist, aber da auch noch der Bus-Speed exisiert, muss man hier Core + 1 überprüfen
- Return CDbl(Sensor.Value) 'Wenn alles passt (CPU, Temperatur-Sensor, Kern), wird der Wert zurückgegeben (MH/z)
- End If
- End If
- Next
- End If
- Next
- Return 0.0 'Wenn nichts gefunden wurde, wird '0.0" zurückgegeben.
- End Function
- End Class
Edit://Rückgabewerte auf Zahlen geändert
Nächstes Kaptitel: Kapitel 2: HDD
ch hoffe es war hilfreich für euch.
Grüße,
Luki-Progger
Grüße,
Lukas
Fragen über Themen im Forum per Konversation werden gelöscht und die Absender blockiert...
Lukas
Fragen über Themen im Forum per Konversation werden gelöscht und die Absender blockiert...
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Luki-Progger“ ()