在Windows平台上,可以使用Qt的QSystemInfo类来获取一些系统信息,但是它没有提供直接获取CPU温度、使用率、风扇转速和功耗的方法。要获取这些信息,您需要使用Windows的API或第三方库。

以下是一种使用第三方库OpenHardwareMonitor来获取CPU温度、使用率、风扇转速和功耗的方法:

  1. 下载OpenHardwareMonitor库并解压缩:https://github.com/openhardwaremonitor/openhardwaremonitor

  2. 在Qt项目中添加OpenHardwareMonitor库的头文件和源文件。例如,将OpenHardwareMonitorLib.h和OpenHardwareMonitorLib.cpp文件添加到项目中。

  3. 在需要获取系统信息的地方,包含OpenHardwareMonitor库的头文件:

#include "OpenHardwareMonitorLib.h"
  1. 使用以下代码获取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库还提供其他硬件信息的获取方法,您可以根据需要进行扩展。

使用QT作为开发工具不使用WMI获取CPU温度、CPU使用率、CPU风扇转速、CPU功耗在windows平台下

原文地址: https://www.cveoy.top/t/topic/hFks 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录