使用Open Hardware Monitor获取CPU温度

时间:2014-12-04 14:29:56

标签: c# openhardwaremonitor

我正在尝试使用OpenHardwareMonitorLib DLL来获取CPU \ core的温度,但是这并没有为我返回温度。

我环顾四周,看到这几乎无处不在,但我无法让它发挥作用。

如果有人能告诉我这里出错了,我会非常感激。

这是我的代码:

using System;
using System.Linq;
using System.Management;
using OpenHardwareMonitor.Collections;
using OpenHardwareMonitor.Hardware;
using OxyPlot;
using OxyPlot.Series;


namespace cs_TempReader
{
    class Program
    {
        private DateTime now;
        protected readonly ListSet<ISensor> active = new ListSet<ISensor>();
        public event SensorEventHandler SensorAdded;
        public event SensorEventHandler SensorRemoved;

        protected virtual void ActivateSensor(ISensor sensor)
        {
            if (active.Add(sensor))
                if (SensorAdded != null)
                    SensorAdded(sensor);
        }

        private static void Main(string[] args)
        {
            var myComputer = new Computer();

            myComputer.CPUEnabled = true;
            myComputer.ToCode();
            myComputer.Open();

            foreach (var hardwareItem in myComputer.Hardware)
            {
                hardwareItem.Update();
                hardwareItem.GetReport();

                Console.WriteLine(hardwareItem.GetReport());

                var series = new LineSeries();

                foreach (var sensor in hardwareItem.Sensors)
                {
                    if (sensor.SensorType == SensorType.Temperature)
                    {
                        Console.WriteLine("{0} {1} {2} = {3}", sensor.Name, sensor.Hardware, sensor.SensorType, sensor.Value);

                    }

                }
            }
        }
    }
}

我的最终目标是能够将其与更大的应用程序联系起来。

2 个答案:

答案 0 :(得分:2)

您需要在应用程序中请求更高的执行级别,以便此代码可以正常工作。

要做到这一点,你必须:

  • 右键单击该项目;
  • 点击添加
  • 点击新项目
  • 在搜索栏中输入清单
  • 点击确定

之后你必须在清单上更改这一行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

对此:

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

答案 1 :(得分:0)

可能您必须强制您的应用程序以管理员身份运行,然后您的代码才能正常运行。

右键单击Project&gt;添加新项,选择“应用程序清单文件”。

更改

<requestedExecutionLevel>

要素:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

这是教程,你可以看看。

http://www.lattepanda.com/topic-f11t3004.html