class Hardware
{
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 static float GetCpuTemperature()
{
float cpuTenperature = 0;
Computer myComputer=new Computer();
UpdateVisitor updateVisitor = new UpdateVisitor();
myComputer.Open();
myComputer.CPUEnabled = true;
myComputer.Accept(updateVisitor);
foreach(var hardwareItem in myComputer.Hardware)
{
if(hardwareItem.HardwareType == HardwareType.CPU)
{
foreach(var sensor in hardwareItem.Sensors)
{
if(sensor.SensorType == SensorType.Temperature)
{
cpuTenperature = Convert.ToInt32(sensor.Value);
}
}
}
}
myComputer.Close();
return cpuTenperature;
}
}
抄来的代码,请勿板砖
详情请搜索“using OpenHardwareMonitor.Hardware;”