使用QT作为开发工具不使用WMI获取CPU温度、CPU使用率、CPU风扇转速、CPU功耗在windows平台下
在Windows平台上,可以使用Qt的QSystemInfo类来获取一些系统信息,但是它没有提供直接获取CPU温度、使用率、风扇转速和功耗的方法。要获取这些信息,您需要使用Windows的API或第三方库。
以下是一种使用第三方库OpenHardwareMonitor来获取CPU温度、使用率、风扇转速和功耗的方法:
-
下载OpenHardwareMonitor库并解压缩:https://github.com/openhardwaremonitor/openhardwaremonitor
-
在Qt项目中添加OpenHardwareMonitor库的头文件和源文件。例如,将OpenHardwareMonitorLib.h和OpenHardwareMonitorLib.cpp文件添加到项目中。
-
在需要获取系统信息的地方,包含OpenHardwareMonitor库的头文件:
#include "OpenHardwareMonitorLib.h"
- 使用以下代码获取CPU温度、使用率、风扇转速和功耗:
OpenHardwareMonitorLib::OpenHardwareMonitorLib monitor;
// 初始化OpenHardwareMonitor
monitor.Init();
// 获取所有硬件信息
std::vector<OpenHardwareMonitorLib::Hardware> hardware = monitor.GetHardware();
// 遍历硬件信息
for (const auto& item : hardware) {
// 查找CPU
if (item.hardwareType == OpenHardwareMonitorLib::HardwareType::CPU) {
// 获取CPU传感器信息
std::vector<OpenHardwareMonitorLib::Sensor> sensors = item.sensors;
for (const auto& sensor : sensors) {
// 获取CPU温度
if (sensor.sensorType == OpenHardwareMonitorLib::SensorType::Temperature) {
qDebug() << "CPU温度:" << sensor.value;
}
// 获取CPU使用率
else if (sensor.sensorType == OpenHardwareMonitorLib::SensorType::Load) {
qDebug() << "CPU使用率:" << sensor.value;
}
}
}
// 查找风扇
else if (item.hardwareType == OpenHardwareMonitorLib::HardwareType::Fan) {
// 获取风扇传感器信息
std::vector<OpenHardwareMonitorLib::Sensor> sensors = item.sensors;
for (const auto& sensor : sensors) {
// 获取风扇转速
if (sensor.sensorType == OpenHardwareMonitorLib::SensorType::Fan) {
qDebug() << "风扇转速:" << sensor.value;
}
}
}
// 查找功耗
else if (item.hardwareType == OpenHardwareMonitorLib::HardwareType::Power) {
// 获取功耗传感器信息
std::vector<OpenHardwareMonitorLib::Sensor> sensors = item.sensors;
for (const auto& sensor : sensors) {
// 获取功耗
if (sensor.sensorType == OpenHardwareMonitorLib::SensorType::Power) {
qDebug() << "CPU功耗:" << sensor.value;
}
}
}
}
// 关闭OpenHardwareMonitor
monitor.Close();
请注意,使用第三方库时,需要根据库的文档和示例代码进行配置和使用。此外,OpenHardwareMonitor库还提供其他硬件信息的获取方法,您可以根据需要进行扩展。
原文地址: https://www.cveoy.top/t/topic/hFks 著作权归作者所有。请勿转载和采集!