qt--硬件序列號


獲取mac地址 

在pro工程中加入:QT += network  

 

 

win.h文件

#ifndef WIN_H
#define WIN_H

#include <QWidget>
#include <QDebug> #include <QNetworkInterface> //導入頭文件

class Win : public QWidget
{
    Q_OBJECT

public:
    Win(QWidget *parent = nullptr);
    ~Win();

    QStringList get_mac();//獲取mac函數

};
#endif // WIN_H

win.cpp文件

#include "win.h"

Win::Win(QWidget *parent)
    : QWidget(parent)
{
    this->resize(300,200);
    QStringList maclist=get_mac();
    qDebug()<<maclist[0];

}

Win::~Win()
{
}

QStringList Win::get_mac()
{
QStringList mac_list;
QString strMac;
QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();
//返回一個在主機上找到的所有網絡接口的列表。如果查找失敗,則返回一個0個元素的列表
for (int i=0; i<ifaces.count(); i++)
    {
        QNetworkInterface iface = ifaces.at(i);

        //過濾掉本地回環地址、沒有開啟的地址
        if (iface.flags().testFlag(QNetworkInterface::IsUp) && !iface.flags().testFlag(QNetworkInterface::IsLoopBack))
        {
            //過濾掉虛擬地址
            if (!(iface.humanReadableName().contains("VMware",Qt::CaseInsensitive)))
            {
                strMac = iface.hardwareAddress();
                mac_list.append(strMac);
            }
        }
    }
    return mac_list;

}

 

 

 

硬件信息

需要:#include <QProcess>

win.cpp

#include "win.h"

Win::Win(QWidget *parent)
    : QWidget(parent)
{
    this->resize(300,200);

    QString str=getWMIC("wmic cpu get processorid");  //查詢cpu序列號
    str=getWMIC("wmic baseboard get serialnumber");  //查詢主板序列號
    str=getWMIC("wmic bios get serialnumber");    //查詢BIOS序列號
    str=getWMIC("wmic diskdrive get serialnumber");  //查看硬盤
    str=getWMIC("wmic cpu get Name");                //獲取cpu名稱
    //"Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz"

    str=getWMIC("wmic cpu get NumberOfCores");  //獲取cpu核心數
    //"2"
    str=getWMIC("wmic cpu get NumberOfLogicalProcessors"); //獲取cpu線程數
    //"4"


    qDebug()<<str;
}

Win::~Win()
{
}

QString Win::getWMIC(const QString &cmd) //獲取硬件信息函數
{
    QProcess p;
        p.start(cmd);
        p.waitForFinished();
        QString result = QString::fromLocal8Bit(p.readAllStandardOutput());
        QStringList list = cmd.split(" ");
        result = result.remove(list.last(), Qt::CaseInsensitive);
        result = result.replace("\r", "");
        result = result.replace("\n", "");
        result = result.simplified();
        return result;
}

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM