Qt使用wmic获取硬件序列号

发布时间 2023-06-07 14:23:57作者: ike_li

一、

1.命令框输入wmic

 

二、

#include "hardware_info.h"
#include <QProcess>
#include <QDebug>
hardware_info::hardware_info()
{

}

QString hardware_info::get_cpu_id()
{
    QStringList arg;
    arg << "cpu" << "get"<<"ProcessorID";
    QString result = run_process(arg);
    result = result.remove("PROCESSORID").trimmed();
    return result;
}

QString hardware_info::get_harddisk_id()
{
    QStringList arg;
    //arg << "diskdrive" << "where"<<"index=0"<<"get"<<"serialnumbe";//获取第一个磁盘序列号

//    arg << "diskdrive" << "where"
//            << "deviceid='\\\\\\\\.\\\\PHYSICALDRIVE0'"
//            << "get" << "serialnumber,model,size";

    arg << "diskdrive" << "where"
            << "deviceid='\\\\\\\\.\\\\PHYSICALDRIVE0'"
            << "get" << "serialnumber";

    QString result = run_process(arg);
    //qDebug()<<result;
    result = result.remove("SERIALNUMBER").trimmed();
    result = result.remove(".");
    return result;

}

QString hardware_info::run_process(QStringList arg)
{
    QProcess p;
    p.setReadChannel(QProcess::StandardOutput);
    p.setProcessChannelMode(QProcess::MergedChannels);
    p.start("wmic", arg);
    p.waitForFinished();
    QString result = p.readAllStandardOutput().simplified().trimmed().toUpper();
    p.close();
    return result;
}