windows-Qt 获取设备PCIE通道宽度

pcie通道信息获取似乎一般都是在linux环境下,windows方法较少。本次是调用第三方命令行工具,通过windows版的lspci.exe去获取。

lspci.exe资源可从这里下载: https://download.csdn.net/download/bangtanhui/88701726

程序主要需要用到以下这三个文件

需要注意的是,lspci.exe需要有管理员权限才行,因此启用cmd的时候记得用管理员权限运行。

cpp 复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    process = new QProcess(this);
    process->start("lspci.exe -vv");
    process->waitForFinished(1000);
    QString pcieData = process->readAllStandardOutput();


    QString busNo = "5";
    QString pcieLane;
    if(!pcieData.isEmpty()){
       //判断有无 "Device 289e:7230" 的字样
        if(pcieData.contains("Device 289e:7230")){
            QStringList tmplist = pcieData.split("\r\n\r\n");
            foreach (QString it, tmplist) {
                //找到采集卡并且bus号匹配得上
                if(it.contains("Device 289e:7230") && it.startsWith(QString("0%1").arg(busNo))){
                    if(it.contains("Xilinx")){
                        if(it.contains("LnkSta:")){
                            QString strLnk = it.mid(it.indexOf("LnkSta:"));
                            strLnk = strLnk.mid(strLnk.indexOf("Width"));
                            strLnk = strLnk.mid(strLnk.indexOf(" "));
                            pcieLane = strLnk.mid(1,strLnk.indexOf(",")-1);
                        }
                    }
                }
            }
        }
    }

    if(!pcieLane.isEmpty())
        ui->lab_pcie->setText(pcieLane);
}

MainWindow::~MainWindow()
{
    delete ui;
}
相关推荐
扶尔魔ocy7 小时前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行并进行态势标绘(四)
qt·opengl·osg
李少兄8 小时前
Windows 11 环境下 BAT 脚本无法执行的排查与修复指南
windows
解道Jdon9 小时前
FigCraft把Figma用Rust从零重写了一遍
ide·windows·git·svn·eclipse·github·visual studio
橙橙笔记11 小时前
QT安卓软件的制作
android·git·qt·软件
zh731411 小时前
Docker Desktop on Windows 挂载问题根因分析
windows·docker·容器
Surpass-HC11 小时前
WSL2 windows-ubuntu
linux·windows·ubuntu
芦芭荞11 小时前
QT使用xml模版生成word文档
xml·qt·word
mengzhi啊11 小时前
qt把结构体数据存入json文件
qt·json
遇印记11 小时前
网络安全,数据链路层,物理层
运维·服务器·网络·windows·学习
mx_jun12 小时前
Wireshark 蓝牙 HCI 日志分析常用操作速查
windows·microsoft·hci·bt