Zum Inhalt springen

funrecycler

Tipps und Tutorials

Hauptmenü
  • Startseite
  • Heim
  • 2009
  • Mai
  • J
  • VB.NET – CoreTemp Werte in der eigenen Anwendung

VB.NET – CoreTemp Werte in der eigenen Anwendung

iang 8. Mai 2009

cpu_infoDas nützliche Tool CoreTemp hatte ich bereits in dem Beitrag „Tools die man Braucht – Teil6 – CoreTemp“ vorgestellt. CoreTemp verfügt über über eine Loogingfunktion um die Temperaturen der einzelnen Cores auszulesen und in einer CSV zu dokumentieren. Möchte man aber nun in seiner eigenen Anwendung die CPU/Core Temperatur veranschaulichen, geht dies zum einen über WMI, welches aber keine vernünftigen Werte liefert. Der andere Weg führt über die GetCoreTempInfoNET.dll welche über die CoreTemp/Developer Website bezogen werden kann. Diese DLL kann in VisualStudio oder SharpDevelop eingebunden werden um so auf die enthalten Funktionen zugeiffen zu können. Wie dies geht werde ich in einen kleinen Quellcode Beispiel erläutern.
Einbinden der DLL in SharpDevelop
In einen Neuerstellten Projekt öffnet man den Referenzdialog, dieser ist über Menü Projekt > Referenz hinzufügen erreichbar. Mit Klick auf „Suchen“ im Karteireiter „.NET Assemblybrowser“ wählt man die GetCoreTempInfoNET.dll aus. Mit klick auf „OK“ ist die Datei eingebunden und kann genutzt werden.
sharp_ref
Quellcode
Zuerst benötigt man ein paar Variablen und erstellt den Namespace für die DLL

Imports GetCoreTempInfoNET

Public cpu_typ As String
Public cpu_speed As String
Public cpu_vid As String
Public cpu_phy_count As String
Public cpu_core_count As String
Public cpu_core_load(3) As String
Public cpu_core_temp(3) As String
Public cpu_fsb As String
Public cpu_multi As String

Desweiteren wird ein Timer benötigt der die Temperatur nach einer bestimmten Zeit aktualisiert.
Class MainForm

Public CTInfo As CoreTempInfo
Public Sub New()
    Me.InitializeComponent()
    CTInfo = New CoreTempInfo()
    AddHandler CTInfo.ReportError, AddressOf CTInfo_ReportError
End Sub

CTInfo erstellen, Errorhandler erstellen
die Prozedur

Public Sub get_coretemp(ByVal sender As Object, ByVal e As ElapsedEventArgs)
        'CoreTemp Daten aus dem Speicher holen
        Dim bReadSuccess As Boolean = CTInfo.GetData()
        'wenn erfolgreich dann Daten lesen
        und in Variablen speichern
        If bReadSuccess Then
            Dim index As UInteger
            'CPU Daten in speichern
            cpu_typ = CTInfo.GetCPUName
            cpu_speed = CTInfo.GetCPUSpeed & " MHz "
            cpu_vid = CTInfo.GetVID
            cpu_phy_count = CTInfo.GetCPUCount
            cpu_core_count = CTInfo.GetCoreCount
            cpu_multi = CTInfo.GetMultiplier
            cpu_fsb = CTInfo.GetFSBSpeed
            cpu_max_temp(0) = CTInfo.GetTjMax(0)
            cpu_max_temp(1) = CTInfo.GetTjMax(1)
            cpu_max_temp(2) = CTInfo.GetTjMax(2)
            cpu_max_temp(3) = CTInfo.GetTjMax(3)
            'einzelne Temperaturen der Cores lesen
            For i As UInteger = 0 To CTInfo.GetCPUCount - 1
                For g As UInteger = 0 To CTInfo.GetCoreCount - 1
                    index = g + (i * CTInfo.GetCoreCount)
                    If CTInfo.IsDistanceToTjMax Then
                        cpu_core_temp(index) = _
                        CTInfo.GetTemp(index)
                        cpu_core_load(index) = _
                        CTInfo.GetCoreLoad(index)
                    Else
                        cpu_core_temp(index) = _
                        CTInfo.GetTemp(index)
                        cpu_core_load(index) = _
                        CTInfo.GetCoreLoad(index)
                    End If
                Next
            Next
        Else
            'wenn die CPU nicht erkannt
             werden konnte
            messagebox.Show("Fehler Name: _
             " + CTInfo.GetLastError().ToString())
            messagebox.Show("Fehler: _
            " + CInt(CTInfo.GetLastError).ToString())
            messagebox.Show("Fehler Nachricht: _
            " + CTInfo.GetErrorMessage(CTInfo.GetLastError))
            Timer_cpu.enabled = False
        End If
End Sub

Timer

Sub Timer_cpuTick(sender As Object, e As EventArgs)
      'Prozedur aufrufen
      get_coretemp(Nothing, Nothing)
      'Temperaturen an Label übergeben
      lbl_core_1.Text = cpu_core_temp(0)
      lbl_core_2.text = cpu_core_temp(1)
      lbl_core_3.text = cpu_core_temp(2)
      lbl_core_4.text = cpu_core_temp(3)
      'Auslastung an Label übergeben
      lbl_cpu_load_1.Text = cpu_core_load(0)
      lbl_cpu_load_2.Text = cpu_core_load(1)
      lbl_cpu_load_3.Text = cpu_core_load(2)
      lbl_cpu_load_4.Text = cpu_core_load(3)
      'weitere Daten übergeben
      lbl_cpu_name.text = cpu_typ
      lbl_fsb.Text = cpu_fsb
      lbl_multi.Text = cpu_multi
      lbl_speed.Text = cpu_speed
      lbl_vcore.Text = cpu_vid
End Sub

Der Intervall des Timers kann frei nach belieben gewählt werden. Eine Sekunde macht sich hier ganz gut.
Fehlerbehandlung

Public Sub CTInfo_ReportError(ByVal ErrCode As ErrorCodes, _
ByVal ErrMsg As String)
       Message.show(ErrMsg)
End Sub

Hinweis: CoreTemp muß zum gleichen Zeitpunkt laufen wie Ihre Anwendung um die Daten direkt von CoreTemp zulesen.

Post navigation

Previous: typische Wartezeiten in der IT
Next: What Does 256 Cores Look Like?

Verwandte Geschichten

quansheng

[NEU] quansheng uv-k5 noch einfacher flashen

iang 7. Februar 2024 0
grafik-1

Optimierung der DAIKIN Altherma 3 R ECH2O mit ESPAltherma

iang 5. Februar 2024 0

PlatformIO IDE can’t find Python interpreter on Linux Ubuntu

iang 22. Januar 2024 0
Neueste Beiträge
  • Meshtastic ist tot, es lebe Meshcore
  • Firefox: Neue Tabs direkt neben dem aktuellen öffnen
  • Proxmox VE 8 auf 9 aktualisieren – Schritt für Schritt
  • [NEU] quansheng uv-k5 noch einfacher flashen
  • Optimierung der DAIKIN Altherma 3 R ECH2O mit ESPAltherma
Neueste Kommentare
  1. Kirdan zu portainer auf der synology – docker aber richtig
  2. Detlef zu Raspi wird zum Internetradio – moodeaudio
  3. Alexander zu Sonoff S26 WiFi Smart Plug mit alternativer Firmware flashen
  4. Raspi wird zum Internetradio – moodeaudio – funrecycler zu noxon 90elf bereinigen der firmware
  5. Sven zu Abfallkalender im ioBroker
Archive
  • November 2025
  • Oktober 2025
  • August 2025
  • Februar 2024
  • Januar 2024
  • Oktober 2023
  • Juli 2023
  • Januar 2023
  • Juni 2020
  • April 2020
  • Januar 2020
  • August 2019
  • Mai 2019
  • März 2019
  • Dezember 2018
  • November 2018
  • Oktober 2018
  • September 2018
  • Juni 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Januar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • Juli 2013
  • April 2013
  • März 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • September 2012
  • August 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • April 2012
  • März 2012
  • Februar 2012
  • Januar 2012
  • Dezember 2011
  • November 2011
  • Oktober 2011
  • September 2011
  • August 2011
  • Juli 2011
  • Juni 2011
  • Mai 2011
  • April 2011
  • März 2011
  • Februar 2011
  • Januar 2011
  • Dezember 2010
  • November 2010
  • Oktober 2010
  • September 2010
  • August 2010
  • Juli 2010
  • Juni 2010
  • Mai 2010
  • April 2010
  • März 2010
  • Februar 2010
  • Januar 2010
  • Dezember 2009
  • November 2009
  • Oktober 2009
  • September 2009
  • August 2009
  • Juli 2009
  • Juni 2009
  • Mai 2009
  • April 2009
  • März 2009
Kategorien
  • Allgemein
  • Amateurfunk
  • Android
  • AVR
  • CNC
  • Computer & Technik
  • Datenleck
  • Games
  • Grafik
  • GSM
  • Hardware
  • Kniffe und Tricks
  • Linux
  • Mac
  • Mikrokontroller
  • misc
  • Politik
  • Programmieren
  • Reviews
  • Software
  • Technik, Trends & News
  • Techniknews
  • Tools
  • Tutorial
  • Video
  • Webseiten
  • yvotd

Möglicherweise haben Sie es verpasst

Meshtastic ist tot, es lebe Meshcore

iang 23. November 2025 0

Firefox: Neue Tabs direkt neben dem aktuellen öffnen

iang 3. Oktober 2025 0
proxmox-logo-color-stacked

Proxmox VE 8 auf 9 aktualisieren – Schritt für Schritt

iang 17. August 2025 0
quansheng

[NEU] quansheng uv-k5 noch einfacher flashen

iang 7. Februar 2024 0
Copyright © All rights reserved. | MoreNews von AF themes.