0

我正在尝试向现有程序添加一项功能,该功能将使用Open Hardware Monitor显示当前 CPU 核心温度。我让它在我的个人计算机上正常工作,它在工具条状态标签上显示温度并在计时器上刷新。但是,当我将所有内容复制到新 PC 并测试运行程序时,它返回的温度总是比显示器显示的温度高出大约 25 度。如果有人对为什么它可以在一台计算机上正确读取而不是另一台计算机有任何想法,我会很感激,因为我很难过......

这是监视器温度和我的程序在我的 PC 上显示的内容都匹配。

打开硬件监视器温度

程序中显示的温度

现在这些是即将发货的新 PC 上显示的温度。

新电脑打开硬件监视器

新电脑上的程序温度显示

这是我目前用来获取临时文件的代码。

Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
    Dim cp As New Computer()
    cp.Open()
    cp.HDDEnabled = True
    cp.FanControllerEnabled = True
    cp.RAMEnabled = True
    cp.GPUEnabled = True
    cp.MainboardEnabled = True
    cp.CPUEnabled = True

    Dim Info As String = ""
    Timer3.Interval = 5000
    For i As Integer = 0 To cp.Hardware.Length - 1
        Dim hw = cp.Hardware(i)

        Select Case hw.HardwareType

            Case HardwareType.CPU

                ToolStripStatusLabel5.Text = "CPU" & vbCrLf
                For j = 0 To hw.Sensors.Length - 1
                    Dim sensor = hw.Sensors(j)
                    If cp.Hardware(i).Sensors(j).SensorType = SensorType.Temperature Then
                        ToolStripStatusLabel5.Text = sensor.Name & " - " & sensor.Value & vbCrLf
                    End If
                Next
        End Select
    Next

End Sub
4

1 回答 1

0

我没有看到代码中的错误,这里有一个使用 OpenHardwaremonitor 和 WMI 获取 CPU 温度的示例,也许你可以尝试一下。

于 2020-02-04T06:57:44.900 回答