QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式

2023-11-14

QT通过CMD和WMIC命令行的方式获取电脑系统,主板型号,CPU型号,硬盘型号等相关信息,包括使用diskpart,wmic,DIrectX等

一、DIrectX诊断工具

通过使用DIrectX诊断工具来查询硬件信息

打开窗体查看

按下windows+R 输入diskmgmt.msc
显示电脑硬件信息
在这里插入图片描述

命令行输出

//cmd 输入查看具体的命令行信息
Dxdiag /?

在这里插入图片描述
导出诊断信息到txt或xml,例:

dxdiag /dontskip /whql:off /t D:\dxdiag_out.txt
dxdiag /dontskip /whql:off /x D:\dxdiag_out.xml

二、 直接CMD输入SYSTEMiNFO

通过systeminfo查询电脑系统,内存大小,启动盘符信息
在这里插入图片描述

三、WMIC命令查询

通过wmic查询电脑信息。通过wmic /?查询相关属性项,例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.获取系统盘符

Wmic OS get SystemDrive

在这里插入图片描述

2.获取系统版本

Wmic OS get Name

在这里插入图片描述

3.获取系统64\32位

wmic os get osarchitecture

在这里插入图片描述

4.获取主板型号

wmic BaseBoard get Product

在这里插入图片描述

5.获取CPU型号

wmic cpu get Name

在这里插入图片描述

6.获取内存大小

wmic ComputerSystem get TotalPhysicalMemory

在这里插入图片描述

7.获取硬盘型号

WMIC diskdrive get Model

在这里插入图片描述

四、QT 使用 QProcess 获取返回值

以获取 系统盘符为例:

    QProcess Cmd;
    Cmd.start("Wmic OS get SystemDrive");
    Cmd.waitForFinished();
    // 获取输出结果
    QString result = QString::fromLocal8Bit(Cmd.readAllStandardOutput());
    // 拆分指令字符串
    QStringList list = result.split("\r\n");
    QString letter="??";
    if(list.count()>=2)
       letter="当前系统盘符:"+list[1].replace("\r","").trimmed();
    data=QVariant::fromValue(letter);
    Cmd.close();
    return (letter!="??" && letter !="");

五、QT 使查看GPU型号

/获取显卡型号
class LARGE_MODEL_EXPORT GPUV:public Subject
{
public:
    SINGLETON(GPUV)
    QString getObjName() override
    {
        return "GPUV";
    }

    ///获取内存大小 异步操作
    void getGPUVersion()
    {
        QtConcurrent::run([=]()
            {
                by_Api_CreateDXGIFactory();
                ///获取后通知所有观察对象
                //notify();
            });
    }

private:
    ///通过windows api
    bool by_Api_CreateDXGIFactory();

};
GPUV::GPUV() {}
GPUV::~GPUV() {}

#include <iostream>
#include <vector>
#include <dxgi.h>
#include <dxgi1_2.h>
#pragma comment(lib,"DXGI.lib")

QString stdWToQString(const std::wstring &str)
{
#ifdef _MSC_VER
    return QString::fromUtf16((const ushort *)str.c_str());
#else
    return QString::fromStdWString(str);
#endif
}
bool GPUV::by_Api_CreateDXGIFactory()
{
    // 定义参数
    IDXGIFactory * pFactory;
    IDXGIAdapter * pAdapter;
    std::vector <IDXGIAdapter*> vAdapters;
    int iAdapterNum = 0;

    // 创建一个DXGI工厂
    HRESULT hr = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)(&pFactory));

    if (FAILED(hr))
      return false;

    // 枚举适配器
    while (pFactory->EnumAdapters(iAdapterNum, &pAdapter) != DXGI_ERROR_NOT_FOUND)
    {
      vAdapters.push_back(pAdapter);
      ++iAdapterNum;
    }

    QString description="??";
    if(iAdapterNum>0)
    {
        DXGI_ADAPTER_DESC adapterDesc;
        vAdapters[0]->GetDesc(&adapterDesc);
        std::wstring aa(adapterDesc.Description);
        description = stdWToQString(aa);
    }
    vAdapters.clear();

    if(description!="" && description!="??")
    {
        data=QVariant::fromValue(description);
        return  true;
    }
    else
        return false;
}

六、QT 判断网络是否通畅

#include <QLibrary>
typedef bool(*ConnectFun)(int* lpdwFlags, int  dwReserved);

NetIswork::NetIswork() {}
NetIswork::~NetIswork() {}

bool NetIswork::CheckIsNetworkWorking()
{
    QLibrary lib("Wininet.dll");
       if (lib.load())
       {
           bool bOnline = false;//是否在线
           int  flags;

           //获取dll库中的函数InternetGetConnectedState函数地址`
           ConnectFun  myConnectFun = (ConnectFun)lib.resolve("InternetGetConnectedState");

           //判断是否连网
           bOnline = myConnectFun(&flags, 0);
           data=QVariant::fromValue(bOnline);
           return bOnline;
       }
       return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式 的相关文章

  • 如何在 PySide/PyQt 中制作一个位于屏幕中央的小部件?

    这段代码有效 但我想知道是否有更简单的方法 def center self qr self frameGeometry cp gui QDesktopWidget availableGeometry center qr moveCenter
  • QTableView 选择已更改

    我有一个QTableView我需要从中获取选择更改事件 我似乎无法让连接工作 我有 MyWidget h protected slots void slotLoadTransaction const QItemSelection selec
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • QPainter 性能高帧率

    我试图在 QPainter 中以 60fps 的速度显示视频 在 OpenGLwidget 中 我遇到一个问题 有时绘图花费的时间太长 并且在使用 QPainter 时发生下一个重绘事件 这会生成警告和随机崩溃 有几个问题 是否有一种 Qt
  • 我应该使用 QCoreApplication::processEvents() 还是 QApplication::processEvents()?

    我有一个从两者调用的方法QThreads和主线程 这个方法有时可能需要很长时间才能在循环中进行计算 所以我把QCoreApplication processEvents 这可以防止 GUI 冻结 在某个时刻我已经改变了QCoreApplic
  • 无法将 QList 分配给 QString

    我遇到这个错误 Unable to assign QList
  • 仅在发布模式下使用 glGenBuffer 时出现未处理的异常 - QT

    我在 Windows 7 上使用 Qt 4 8 发布模式编译项目时遇到了一些问题 调试时一切正常 但在发布时我收到未处理的异常 0xC0000005 访问冲突 我将范围缩小到发生这种情况的行 即生成像素缓冲区的时间 我的第一个猜测是 DLL
  • 如何在 Qt Creator 中编辑 QtWebKit 的右键上下文菜单?

    好吧 这是我的困境 我正在使用 Qt Creator 制作一个使用 Webkit 的简单应用程序 我认为 Qt Creator 会有一种简单的方法来使用信号和槽编辑器编辑右键单击上下文菜单 但事实证明这不是真的 我知道 webkit 有与上
  • 在 Qt 服务器上验证用户身份

    我正在尝试使用 C QtTcpSocket 为个人项目 多人国际象棋游戏 实现身份验证系统 我的朋友建议了一种验证用户的方法 但我想问是否有更简单或更好的方法 来自 Python 背景 做这个项目主要是为了加深对 C 的理解 我将发布我朋友
  • QMutex 是否需要是静态的,以便此类实例的其他线程调用知道暂停其操作?

    从多个线程调用以下附加函数 我不希望数据重写附加 因为计数器尚未增加 除了当前使用 Append 的线程之外 这是否会挂起所有进入的线程 或者其他线程会继续运行而不追加数据吗 互斥锁是否需要是 静态 的 或者每个实例都知道要暂停操作吗 如果
  • 在没有加载器的情况下实例化内联组件

    有没有办法实例化内联Component 即在同一文件中定义 而不使用Loader 我不太关心使用的性能影响Loader因为我要用很多东西污染我的文件Loader包装纸 我发现从 JavaScript 创建动态 QML 对象 http doc
  • QStyledItemDelegate 绘制自定义小部件失败

    在我的一个项目中 我使用的是QTableWidget为了显示一些复杂的计算结果 为了提高表格的可读性 我需要在单个表格单元格内显示两个对齐的值 后来我想通过使用颜色或箭头等来进一步自定义小部件 为此我源自QStyledItemDelegat
  • 如何在QT上暂停和重新启动Qtimer

    我有 Ubuntu 我正在使用 IDEQT on C 我将暂停和恢复计时器 例如 void Ordonnancer les taches on pushButton clicked connect dataTimer SIGNAL time
  • 使用 OpenGL 渲染 QImage

    与我相关的其他问题 https stackoverflow com questions 20126354 render qimage from sooffscreenrenderer in qglwidget 我认为更核心的问题是 如何渲染
  • 在 Qt 中使用多个不同的流读取同一文件

    使用 Qt 是否可以使用多个流读取文件以同时访问其中的不同数据部分 请注意 Qt 中的流 QTextStream QDataStream 不处理底层设备中的位置 流类只是一个包装器 用于更轻松地解析设备 QFile 实例 内的二进制数据 因
  • QTableView 并双击一个单元格

    我正在开发测试用例编辑器 该编辑器包含 USART 传输和接收数据包格式 编辑器是一个表格视图 发送和接收数据包的长度为八个字节 例如 0x01 0x02 0x03 0x08 它在我的第五和第六栏中 现在 我希望此列中的单元格为只读 但是当
  • 如何在 Qt 应用程序中嵌入 Python 解释器?

    有没有一种简单的方法可以将 Python 解释器嵌入到 Qt 应用程序中 如果可能的话 我希望有一个跨平台的解决方案 这就是目的PythonQt http pythonqt sourceforge net 它支持 Windows Linux
  • 针对初学者的 QT 商业许可证与非商业许可证 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 QT 许可似乎非常反学习 因为据我所知 用它开发的任何东西都只能是商业的当且仅当 its entire开发是在使用商业许可证的情况下完成的
  • 覆盖 QWebView 中的页面回复

    我试图在 Qt 的 QWebView 中拦截页面 表单请求 并在某些情况下使用替代内容进行响应 QNetworkReply ngcBrowser createRequest Operation operation const QNetwor

随机推荐

  • 三菱plc指令详细解析

    一 顺控指令 1 触点指令 00 LD 逻辑操作开始 01 LDI 逻辑非操作开始 02 AND 逻辑乘 03 ANI 逻辑乘非 04 OR 逻辑加 05 ORI 逻辑加非 2 连接指令 06 ANB AND逻辑块与 07 ORB OR逻辑
  • 一张图正则表达式

    一张图正则表达式
  • VW ware安装Ubuntu虚拟机及环境配置

    实验前准备 VMware 官网下载 Ubuntu XXX iso 文件过大阿里云镜像下载 熟悉那种Linux内核就下载那种 这个不会影响集群的搭建 https pan baidu com s 1tFvCA4PmNC2tZN7Yp2BkZQ
  • vue组件销毁重置详解

    v if方式 key方式 destroy v if方式
  • 在Windows下使用MingGW[GCC+OpenMP]和CodeBlocks开发多核应用基本环境配置

    转自 http blog csdn net danny xcz article details 3332251 从06年开始 多核开发已经越来越多的成为所有应用设计必须考虑的问题 我使用MingGW CodeBlocks来测试OpenMP多
  • 浪涌保护电路设计

    浪涌保护电路设计 一 什么是浪涌 二 浪涌的产生 2 1浪涌的产生 2 2浪涌的传输介质 2 3IEC定义的浪涌标准 三 浪涌保护电路 一 什么是浪涌 浪涌是一种瞬变干扰 在某种特定条件下由电网造成的瞬间电压超出额定电压的范围 通常这个瞬变
  • Docker(三) 创建Docker镜像

    一 在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Docker s Container Image Repository Docker Hub 下载镜像 docker pull ubuntu 22
  • PS解决“无法使用快速选择,因为没有足够内存(RAM)”

    PS解决 无法使用快速选择 因为没有足够内存 RAM win R打开命令行 在输入框输入 regedit 点击确定 找到目录HKEY CURRENT USER Software Adobe Photoshop 点击对应版本Photoshop
  • 万维网服务器协议提供web,万维网的HTTP和FTP协议.doc

    万维网的HTTP和FTP协议 doc 万维网的HTTP和FTP协议 摘 要 20世纪40年代以来 人们就梦想能拥有一个世界性的信息库 在这个信息库中 信息不仅能被全球的人们存取 而且能轻松地链接到其他地方的信息 使用户可以方便快捷地获得重要
  • PyQt5 自动计算阵列矩阵

    说实话 其实我当时听懂了 真正写代码的时候越写越懵逼 所以还是记录下来吧 另外有兴趣了解的同学还是看老师的视频解说比较好 想学PyQT的同学强烈建议看这个老师的视频 由浅入深 从PyQT最基本的开始教学 非常棒 bilibili https
  • 第五章:平衡二叉树

    系列文章目录 文章目录 系列文章目录 前言 1 平衡二叉树的介绍 1 1 AVL树的概念 1 2 AVL树的性质 2 平衡二叉树的插入 2 1 平衡二叉树的插入步骤 2 2 平衡二叉树的旋转 2 2 1 左单旋 2 2 2 右单旋 2 2
  • /etc/vsftpd.conf详解

    匿名权限控制 anonymous enable YES 是否启用匿名用户no anon password YES 匿名用户login时不询问口令下面这四个主要语句控制这文件和文件夹的上传 下载 创建 删除和重命名 anon upload e
  • 4399笔试题

    1 冒泡排序的时间复杂度 2 有无序数字5000个 用什么算法能快速的找出最大的前50个数字 3 比如有10个台阶 一直青蛙一次只能跳一个或者二个台阶 问青蛙从第一个台阶开始跳最多有几种跳法 4 从区间 2 2 中随意取出二个实数 它们的和
  • 解析顶点着色器和片元着色器

    管线 也称渲染管线 因为 OpenGL ES在渲染处理过程中会顺序执行一系列操作 这一系列相关的处理阶段就被称为OpenGL ES 渲染管线 OpenGL ES 渲染过程就如流水线作业一样 这样的实现极大地提高了渲染的效率 如图就是 Ope
  • C/C++遍历文件夹下所有文件或文件夹名称(使用Windows API)

    目录 前言 实现思路 源代码 前言 在项目开发中 经常需要去遍历某一个文件夹下的一些资源文件 为了避免重复造轮子 刚好在此记录一下 实现思路 1 给出一个文件夹名称 2 获取文件句柄 3 过滤掉 和 上一级和当前目录 4 通过获取 find
  • (一)抖音快手短视频去水印原理分析

    抖音 一 首先获取分享短链接 一 我打12360他竟告诉我不可以订票 洛阳综合保税区 海关 https v douyin com JrA4H4N 复制此链接 打开 抖音短视频 直接观看视频 短链接 https v douyin com Jr
  • nginx负载均衡

    目录 负载均衡 nginx的七层代理和四层代理 七层代理的就是http请求和响应 四层代理与七层代理之间的区别 正向代理与反向代理 负载均衡 upstream 算法 算法总结 stream 负载均衡 通过反向代理来实现 nginx的七层代理
  • 修改 Ztree 节点的图标 ( icon 与 iconSkin)

    1 使用 icon 首先 进入 Ztree 官网 查看 Api http www treejs cn v3 api php 你可以下载官网上的ztree压缩包 在里面有 自定义图标的实例代码 或进入这个地址下载 https download
  • Vue2项目练手——通用后台管理项目第八节

    Vue2项目练手 通用后台管理项目 菜单权限功能 tab js Login vue CommonAside vue router index js 权限管理问题解决 router tab js CommonHeader vue main j
  • QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式

    QT通过CMD和WMIC命令行的方式获取电脑系统 主板型号 CPU型号 硬盘型号等相关信息 包括使用diskpart wmic DIrectX等 目录导读 一 DIrectX诊断工具 打开窗体查看 命令行输出 二 直接CMD输入SYSTEM