thongkorn โพสต์ 2024-4-19 13:00:25

[VB.NET] โค้ดการอ่านค่าอุณหภูมิของ CPU Package ด้วยของฟรีจาก LibreHardwareMonitor

http://www.g2gsoft.com/webboard/images/VBNet/librehardwaremonitor.png

http://www.g2gsoft.com/webboard/images/VBNet/librehardwaremonitorref.png
การ Add References ... และต้องใช้ .NET Framework 4.7.2 ขึ้นไป ...

โค้ด VB.NET (2017) ในการอ่านค่าอุณหภูมิของ CPU Package ด้วยของฟรีจาก LibreHardwareMonitor โดยโค้ดตัวอย่างนี้จะใช้เวอร์ชั่น 0.9.3 ซึ่งจะต้องใช้ .Net Framework 4.7.2 ขึ้นไปนะครับ เจ้าตัว LibreHardwareMonitor จะสามารถมอนิเตอร์อุณหภูมิจากเซนเซอร์บนตัวเมนบอร์ด ความเร็วพัดลม ระดับแรงดัน หรือความเร็วบัสได้เหมือนกันกับ OpenHardwareMonitor ...

มาดูโค้ดฉบับเต็มกันเถอะ ...
'// LibreHardwareMonitor:
'// Monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.

Imports LibreHardwareMonitor.Hardware
Public Class frmLibreHardware
    Private WithEvents computer As New Computer

    '// S T A R T ... H E R E
    Private Sub frmLibreHardware_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      lblCpuName.Text = ""
      For i As Byte = 1 To 60
            cmbRefresh.Items.Add(i)
      Next
      With cmbRefresh
            .SelectedIndex = 2'// Refresh every 3 sec.
            .ItemHeight = 10
            .IntegralHeight = False
      End With
      '// Enable Timer.
      Timer1.Interval = CByte(cmbRefresh.Text) * 1000
      Timer1.Enabled = True
    End Sub

    '// Initialized ListView Control.
    Sub InitListView()
      With lvwData
            .Clear()
            .View = View.Details
            .GridLines = True
            .FullRowSelect = True
            .HideSelection = False
            .MultiSelect = False
            '// 1st Column Index = 0
            .Columns.Add("Sensor Name", lvwData.Width \ 2)
            .Columns.Add("Value", lvwData.Width \ 2 - 100)
      End With
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
      Call InitListView()
      computer.IsCpuEnabled = True '// เปิดการตรวจสอบ CPU
      computer.Open()
      For Each hardwareItem As IHardware In computer.Hardware
            '// ตรวจสอบเฉพาะ CPU
            If hardwareItem.HardwareType = HardwareType.Cpu Then
                hardwareItem.Update()
                For Each sensor As ISensor In hardwareItem.Sensors
                  If sensor.SensorType = SensorType.Temperature AndAlso sensor.Name.Contains("CPU Package") Then
                        pgbTemp.Value = sensor.Value
                        lblCpuName.Text = sensor.Name & ": " & sensor.Value & " °C."
                  End If
                  Dim LV As ListViewItem
                  LV = lvwData.Items.Add(sensor.Name)'// Primary Node
                  LV.SubItems.Add(sensor.Value)
                Next
            End If
      Next
      computer.Close()
      computer.IsCpuEnabled = False
    End Sub

    Private Sub cmbRefresh_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbRefresh.SelectedIndexChanged
      '// 1000 Millisecond = 1 Second.
      Timer1.Interval = CByte(cmbRefresh.Text) * 1000
    End Sub

    Private Sub frmLibreHardware_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
      Me.Dispose()
      GC.SuppressFinalize(Me)
      Application.Exit()
    End Sub
End Class
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2017) ได้ที่นี่ ...

หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] โค้ดการอ่านค่าอุณหภูมิของ CPU Package ด้วยของฟรีจาก LibreHardwareMonitor