如何使用 OpenHardwareMonitor.dll?

How to use OpenHardwareMonitor .dll?

我正在尝试获取本地计算机上处​​理器的状态数据。我在网上找到了几个教程,但没有一个涵盖我遇到的错误。

这是我的代码:

        UpdateVisitor visitor = new UpdateVisitor();

        Computer computer = new Computer();
        computer.Open();
        computer.CPUEnabled = true;

        computer.Accept(visitor);

它在调用 computer.Open() 时抛出异常,这是异常消息:

我做错了什么?如果我能提供更多细节,请告诉我。 我在 .NET Standard 2.0 项目中引用库。

我从这个问题中窃取了这个 WMI 答案:C# CPU and GPU Temp。 只需安装 System.Management 并以管理员模式启动 VS,即可访问传感器。

using System;
using System.Diagnostics;
using System.Management;
class Program
{
   static void Main(string[] args)
   {
       Double CPUtprt = 0;
       System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher(@"root\WMI", "Select * From MSAcpi_ThermalZoneTemperature");
       foreach (System.Management.ManagementObject mo in mos.Get())
       {
           CPUtprt = Convert.ToDouble(Convert.ToDouble(mo.GetPropertyValue("CurrentTemperature").ToString()) - 2732) / 10;
          Console.WriteLine("CPU temp : " + CPUtprt.ToString() + " °C");
       }
   }
}

通过在 .NET Framework 4.7.1 项目中而不是在 .NET Standard 2.0 项目中引用库来解决问题。我 post 这个答案只是为了警告其他试图实现这一目标的人,这个库与 .NET 标准代码不完全兼容。