• 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("
    ", "");
            result = result.replace("
    ", "");
            result = result.simplified();
            return result;
    }

  • 相关阅读:
    vue+axios实现文件下载
    处理 Vue 单页面应用 SEO
    JSON.parse()与JSON.stringify()的区别
    JS设置Cookie过期时间
    <div>标签仿<textarea>。contentEditable=‘true’,赋予非表单标签内容可以编辑
    CSS上下左右居中的几种方法
    jqGrid 修改单元格值或者替换图片及其他
    对于Web性能优化, 了解和经验
    初步了解反射案列
    JS IndexOf移除符合规则的一项
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13796248.html
Copyright © 2020-2023  润新知