74 lines
2.4 KiB
C#
74 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using OpenHardwareMonitor.Hardware;
|
|
using System.Management;
|
|
|
|
|
|
namespace CPUTemperature
|
|
{
|
|
public class UpdateVisitor : IVisitor
|
|
{
|
|
public void VisitComputer(IComputer computer)
|
|
{
|
|
computer.Traverse(this);
|
|
}
|
|
|
|
public void VisitHardware(IHardware hardware)
|
|
{
|
|
hardware.Update();
|
|
foreach (IHardware subHardware in hardware.SubHardware)
|
|
subHardware.Accept(this);
|
|
}
|
|
|
|
public void VisitSensor(ISensor sensor) { }
|
|
|
|
public void VisitParameter(IParameter parameter) { }
|
|
}
|
|
|
|
public class CHardwareMonitor
|
|
{
|
|
public static Double GetCPUTemperature()
|
|
{
|
|
Double CPUtprt = 0;
|
|
string tem =null;
|
|
try
|
|
{
|
|
ManagementObjectSearcher mos = new 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;
|
|
}
|
|
|
|
//UpdateVisitor updateVisitor = new UpdateVisitor();
|
|
//Computer computer = new Computer();
|
|
//computer.Open();
|
|
//StringBuilder str = new StringBuilder();
|
|
//computer.Accept(updateVisitor);
|
|
//for (int i = 0; i < computer.Hardware.Length; i++)
|
|
//{
|
|
// if (computer.Hardware[i].HardwareType == HardwareType.CPU)
|
|
// {
|
|
// for (int j = 0; j < computer.Hardware[i].Sensors.Length; j++)
|
|
// {
|
|
// if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature)
|
|
// {
|
|
|
|
// //这里就是cpu温度了
|
|
// CPUtprt = Convert.ToDouble(computer.Hardware[i].Sensors[j].Value.ToString());
|
|
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
}
|
|
catch { }
|
|
|
|
return CPUtprt;
|
|
}
|
|
}
|
|
}
|