0

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

这是我的代码:

        UpdateVisitor visitor = new UpdateVisitor();

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

        computer.Accept(visitor);

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

在此处输入图像描述

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

4

2 回答 2

0

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

于 2019-08-30T12:03:10.457 回答
-1

我从这个问题中偷了这个 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");
       }
   }
}
于 2019-08-29T12:44:33.147 回答