2014-12-04 5 views
2

OpenHardwareMonitorLib DLL을 사용하여 CPU 코어 온도를 얻으려고합니다.하지만 온도가 반환되지는 않습니다.개방형 하드웨어 모니터를 사용하여 CPU 온도 가져 오기

나는 이것이 거의 모든 곳에서 문제가되는 것을 보았지만 이것을 작동시키지 못한다.

누군가 내가이 문제로 어디로 잘못 가고 있는지 말할 수 있다면 매우 감사 할 것입니다.

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); 

        } 

       } 
      } 
     } 
    } 
} 

내 궁극적 인 목표는 더 큰 응용 프로그램에이 넥타이 할 수있을 것입니다 :

내 코드입니다.

+1

OHM 앱이 제대로 작동합니까? – leppie

+0

다른 OpenHardwareMonitor 태그 질문을보고 [최근 OpenHardwareMonitor 샘플 코드 C#] (http://stackoverflow.com/questions/11765192/recent-openhardwaremonitor-sample-code-c-sharp?rq=1) 그 중 하나는 API 호출의 특성으로 인해 관리자 권한으로 VS를 실행해야한다는 것입니다. – AWinkle

+0

@ 사이먼 : 편집자가 질문에서 서명을 삭제하는 것이 옳았습니다. 사용자 이름이 SO 그 자체의 오른쪽 하단에 자동 표시되기 때문입니다. –

답변

2

이 코드가 제대로 작동 할 수 있도록 응용 프로그램에서 더 높은 실행 수준을 요청해야합니다.

는 당신이 가지고이 작업을 수행하려면 :

  • 프로젝트를 마우스 오른쪽 클릭;
  • 추가를 클릭 클릭 새 항목 ... 검색 창에
  • 유형 매니페스트
  • OK를 클릭

에에 당신이있는 그 후

  • 매니페스트에서 다음 줄을 변경하십시오.

    이에

    :

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

    하면 다음 코드가 작동 할 수있다, 관리자 권한으로 실행하는 응용 프로그램을 강제 할 수 있음.

    프로젝트> 새 항목 추가를 마우스 오른쪽 단추로 클릭하고 "Application Manifest File"을 선택하십시오.

    변경

    <requestedExecutionLevel> 
    

    요소 :

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

    여기에 튜토리얼, 당신은 모양을 가질 수 있습니다.

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

    관련 문제