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

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


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



程序主要需要用到以下这三个文件
在这里插入图片描述


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

#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;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/292344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之CRUD、常见函数及union查询

目录 一. CRUD 1.1 什么是crud 1.2 SELECT(查询) 1.3 INSERT(新增) 1.4 UPDATE(修改) 1.5 DELETE(删除) 二. 函数 2.1 常见函数 2.2 流程控制函数 2.3 聚合函数 三. union与union all 3.1 union 3.2 union all 3.3 具体不同 3.4 结论 四. 思维导图 一. CRUD 1.1 什么是crud…

Leetcode算法系列| 11. 盛最多水的容器

目录 1.题目2.题解C# 解法一:暴力C# 解法二:双指针(左指针大于右指针,left)C# 解法三:双指针优化(左指针小于等于最小高度,left)Java 解法一:双指针Python3 解…

【KingbaseES】实现MySql函数Median

本方法只支持在聚合函数窗口中调用 不支持在GROUP BY中使用,使用plsql写的玩意新能都会稍微差一些 建议使用原生方法修改 CREATE OR REPLACE FUNCTION _final_median(numeric[])RETURNS numeric AS $$SELECT AVG(val)FROM (SELECT valFROM unnest($1) valORDER BY …

wy的leetcode刷题记录_Day72

wy的leetcode刷题记录_Day72 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间: 前言 目录 wy的leetcode刷题记录_Day72声明前言2397. 被列覆盖的最多行数题目介绍思路代码收获 1137. 第 N 个泰波那契数题目介绍思路代码收获 2397. 被列覆…

氢燃料电池——产品标准规范汇总和梳理

文章目录 氢燃料电池模块 氢燃料电池发动机 氢燃料电池汽车 加氢系统 总结 氢燃料电池模块 GB/T 33978-2017 道路车辆用质子交换膜燃料电池模块 GB/T 43361-2023 气体分析 道路车辆用质子交换膜燃料电池氢燃料分析方法的确认 GB/T 29729-2022 氢系统安全的基本要求 GB/T 4…

拿到年终奖后马上辞职,厚道吗?

拿到年终奖后马上辞职,厚道吗? 作为一个人,你首先要对自己负责,其次是对自己身边的人(妻儿,家人,朋友)负责。 你明明可以跳槽到有更好的职业发展你不去,是为不智&#…

分布式基础概念

分布式基础概念 1 微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API。这些服务围绕业务能力来构建,并通过完全自动化部署机制…

52、全连接 - 特征与样本空间的对应关系

上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…

Unity坦克大战开发全流程——开始场景——排行榜数据逻辑

开始场景——排行榜数据逻辑 排行榜单条数据 排行榜列表 然后在数据管理类中声明一个对应的字段 初始化数据 然后再在上一节课所编写的UpdatePanelInfo函数中处理数据更新的逻辑 时间换算算法 然后再在数据管理类中编写一个在排行榜中添加数据的方法以提供给外部 直到当前RankI…

day8--java高级编程:数据结构与集合源码

数据结构与集合源码 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 本章专题与脉络 1. 数据结构剖析 我们举一个形象的例子来理解数据结构的作用: 战场:程序运行所需的软…

CTF-PWN-栈溢出-高级ROP-【SROP】

文章目录 linux信息处理2017 360春秋杯 smallest检查源码思路第一次要执行ret时的栈执行write函数时修改rsp到泄露的栈地址上去 输入/bin/sh并sigreturn调用系统调用回忆exp注意一个离离原上谱的地方 参考链接 SROP(Sigreturn Oriented Programming) 于 2014 年被 Vrije Univer…

stable diffusion 人物高级提示词(一)头部篇

一、女生发型 prompt描述推荐用法Long hair长发一定不要和 high ponytail 一同使用Short hair短发-Curly hair卷发-Straight hair直发-Ponytail马尾high ponytail 高马尾,一定不要和 long hair一起使用,会冲突Pigtails2条辫子-Braid辫子只写braid也会生…

【算法挨揍日记】day46——377. 组合总和 Ⅳ\、96. 不同的二叉搜索树

377. 组合总和 Ⅳ 377. 组合总和 Ⅳ 题目描述: 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 解题思路: 算法思路&a…

尚硅谷大数据技术-数据湖Hudi视频教程-笔记01【概述、编译安装】

大数据新风口:Hudi数据湖(尚硅谷&Apache Hudi联合出品) B站直达:https://www.bilibili.com/video/BV1ue4y1i7na 尚硅谷数据湖Hudi视频教程百度网盘:https://pan.baidu.com/s/1NkPku5Pp-l0gfgoo63hR-Q?pwdyyds阿里…

Java并发 - Java中所有的锁

Java 中提供了多种锁机制,用于实现多线程之间的同步和互斥。 1. 乐观锁&悲观锁 1.1 特点 乐观锁:假定多个事务之间很少发生冲突,操作不加锁。发生错误的时候进行回滚或重试。 悲观锁:假定冲突可能频繁发生,先…

Linux ---- 进程和计划任务

内核功用:进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等 一、程序和进程的关系 1、程序 保存在硬盘、光盘等介质中的可执行代码和数据静态保存的代码 2、进程 在CPU及内存中运行的程序代码动态执行的代码父、子进程 每个程序可以创建一个或多个…

[Redis实战]分布式锁-redission

五、分布式锁-redission 5.1 分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题: 重入问题:重入问题就是指获得锁的线程可以再次进入到相同的锁的代码中,可重入锁的意义在于防止死锁。比如HashTable这样的代码中&#xf…

web自动化测试详细流程和步骤

一、什么是web自动化测试 自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目…

Linux_apachectl 网页优化

1.1 网页压缩与缓存 在使用 Apache 作为 Web 服务器的过程中,只有对 Apache 服务器进行适当的优化配 置,才能让 Apache 发挥出更好的性能。反过来说,如果 Apache 的配置非常糟糕, Apache 可能无法正常为我们服务。因此&#xff0c…