CPU Temperatur auslesen

    • VB.NET

    Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Xenon.

      CPU Temperatur auslesen

      Da die Anfrage in letzter Zeit groß ist, wie man denn nun die CPU Temperatur ausliest, mache ich nun diesen Thread auf.

      Also ein Verweis auf System.Management und folgenden Code:

      VB.NET-Quellcode

      1. Imports System.Management
      2. Public Class Form1
      3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      4. Try
      5. Dim TempSearcher As New Management.ManagementObjectSearcher( _
      6. "root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      7. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      8. Dim Temperature As Double = CDbl(TempSensor("CurrentTemperature"))
      9. Temperature = (Temperature - 2732) / 10.0
      10. MessageBox.Show(Temperature.ToString & "° C")
      11. Next
      12. Catch err As Management.ManagementException
      13. MessageBox.Show("Fehler: " & err.Message)
      14. End Try
      15. End Sub
      16. End Class
      ich würde es so machen, sonst kommt die MsgBox 2mal:

      VB.NET-Quellcode

      1. Try
      2. Dim TempSearcher As New Management.ManagementObjectSearcher("root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      3. Dim Temperature As Double
      4. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      5. Temperature = (TempSensor("CurrentTemperature") - 2732) / 10.0
      6. Next
      7. MsgBox(Temperature & "° C")
      8. Catch err As Management.ManagementException
      9. MsgBox("Fehler: " & err.Message)
      10. End Try


      oder als Function mit einem Timer und einem Label:

      VB.NET-Quellcode

      1. Public Function Temperature() As Double
      2. Try
      3. Dim TempSearcher As New Management.ManagementObjectSearcher("root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      4. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      5. Temperature = (TempSensor("CurrentTemperature") - 2732) / 10.0
      6. Next
      7. Return Temperature
      8. Catch err As Management.ManagementException
      9. MsgBox("Fehler: " & err.Message)
      10. End Try
      11. End Function
      12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      13. Label1.Text = Temperature() & "° C"
      14. End Sub


      Ciao...

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Adam“ ()

      deLaKing schrieb:

      Fehler: Zugriff verweigert

      Kann man den Zugriff erlauben?

      MfG

      geh in den Debug Ordner und für es als Admin aus :)

      btw fände sowas auch ganz nett weiß nicht was die obere grenze ist was ein motherboar aushält hab jetzt einfach mal iwas geschrieben :D

      VB.NET-Quellcode

      1. Imports System.Management
      2. Public Class Form1
      3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      4. Try
      5. Dim TempSearcher As New Management.ManagementObjectSearcher( _
      6. "root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      7. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      8. Dim Temperature As Double = CDbl(TempSensor("CurrentTemperature"))
      9. Temperature = (Temperature - 2732) / 10.0
      10. Label1.Text = (Temperature.ToString & "° C")
      11. Next
      12. Catch err As Management.ManagementException
      13. MessageBox.Show("Fehler: " & err.Message)
      14. MessageBox.Show("Als Admin ausführen... bittö")
      15. End Try
      16. End Sub
      17. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      18. Application.Exit()
      19. End Sub
      20. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      21. Try
      22. Dim TempSearcher As New Management.ManagementObjectSearcher( _
      23. "root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      24. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      25. Dim Temperature As Double = CDbl(TempSensor("CurrentTemperature"))
      26. Temperature = (Temperature - 2732) / 10.0
      27. Label1.Text = (Temperature.ToString & "° C")
      28. If Temperature <= 20 Then
      29. Me.BackColor = Color.Yellow
      30. ElseIf Temperature <= 30 Then
      31. Me.BackColor = Color.Orange
      32. ElseIf Temperature <= 40 Then
      33. Me.BackColor = Color.DarkOrange
      34. ElseIf Temperature <= 50 Then
      35. Me.BackColor = Color.Blue
      36. ElseIf Temperature <= 65 Then
      37. Me.BackColor = Color.Green
      38. ElseIf Temperature <= 80 Then
      39. Me.BackColor = Color.DarkGreen
      40. ElseIf Temperature <= 100 Then
      41. Me.BackColor = Color.DarkGray
      42. ElseIf Temperature <= 120 Then
      43. Me.BackColor = Color.Black
      44. ElseIf Temperature <= 140 Then
      45. Me.BackColor = Color.Red
      46. ElseIf Temperature > 140 Then
      47. Me.BackColor = Color.DarkRed
      48. MsgBox("GEFÄHRLICHER BEREICH DER MOTHERTEMP. !!!")
      49. MsgBox("FAHREN SIE DEN COMPUTER UMGEHEND HERUNTER !!!")
      50. End If
      51. Next
      52. Catch err As Management.ManagementException
      53. MessageBox.Show("Fehler: " & err.Message)
      54. MessageBox.Show("Als Admin ausführen... bittö")
      55. End Try
      56. End Sub
      57. End Class


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.