Я пытаюсь определить температуру процессора, графического процессора и материнской платы, используя код Open Hardware Monitor.Я наткнулся на действительно полезную страницу, которая очень хорошо объясняла и дала мне именно тот результат, который мне нужен, но только для температуры процессора.Вот ссылка: https://www.instructables.com/id/Using-Open-Hardware-Monitor-to-Get-CPU-Temperature/
Это именно тот тип учебника, который мне нужен, но для температуры GPU и материнской платы.До сих пор я пытался сделать следующее (он возвратил пустую строку для обоих):
public string getGraphicsTemp()
{
UpdateVisitor updateVisitor = new UpdateVisitor();
Computer computer = new Computer();
computer.Open();
computer.GPUEnabled = true;
computer.Accept(updateVisitor);
string res = "";
for (int i = 0; i < computer.Hardware.Length; i++)
{
if (computer.Hardware[i].HardwareType == HardwareType.GpuAti)
{
for (int j = 0; j < computer.Hardware[i].Sensors.Length; j++)
{
if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature) res = String.Concat(res, (computer.Hardware[i].Sensors[j].Name + ": " + computer.Hardware[i].Sensors[j].Value.ToString() + "ºC" + "\r"));
}
}
}
computer.Close();
return res;
}
public string getMotherboardTemp()
{
UpdateVisitor updateVisitor = new UpdateVisitor();
Computer computer = new Computer();
computer.Open();
computer.MainboardEnabled= true;
computer.Accept(updateVisitor);
string res = "";
for (int i = 0; i < computer.Hardware.Length; i++)
{
if (computer.Hardware[i].HardwareType == HardwareType.Mainboard)
{
for (int j = 0; j < computer.Hardware[i].Sensors.Length; j++)
{
if (computer.Hardware[i].Sensors[j].SensorType == SensorType.Temperature) res = String.Concat(res, (computer.Hardware[i].Sensors[j].Name + ": " + computer.Hardware[i].Sensors[j].Value.ToString() + "ºC" + "\r"));
}
}
}
computer.Close();
return res;
}
Кроме того, вот код для части процессора, которая является единственной, которая работает до сих пор:
public string getCPUTemp()
{
UpdateVisitor updateVisitor = new UpdateVisitor();
Computer computer = new Computer();
computer.Open();
computer.CPUEnabled = true;
computer.Accept(updateVisitor);
string res = "";
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) res = String.Concat(res, (computer.Hardware[i].Sensors[j].Name + ": " + computer.Hardware[i].Sensors[j].Value.ToString() + "ºC" + "\r"));
}
}
}
computer.Close();
return res;
}
Заранее спасибо, если кто-нибудь может решить это.