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

news2024/11/24 5:53:28

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

目录导读

    • 一、DIrectX诊断工具
      • 打开窗体查看
      • 命令行输出
    • 二、 直接CMD输入SYSTEMiNFO
    • 三、WMIC命令查询
      • 1.获取系统盘符
      • 2.获取系统版本
      • 3.获取系统64\32位
      • 4.获取主板型号
      • 5.获取CPU型号
      • 6.获取内存大小
      • 7.获取硬盘型号
    • 四、QT 使用 QProcess 获取返回值
    • 五、QT 使查看GPU型号
    • 六、QT 判断网络是否通畅

一、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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PaddleClas:自定义backbone

PaddleClas提供的都是现成的网络结构和权重&#xff0c;不一定适用&#xff0c;所以有必要掌握魔改的技能。 PaddleClas版本&#xff1a;2.5 1&#xff1a;新建 mynet.py 在 ppcls/arch/backbone/model_zoo/ 文件夹下新建一个自己的模型结构文件 mynet.py&#xff0c;即你自己…

抖音seo矩阵系统源码开发部署-开源分享(二)

目录 市场背景分析 一、 抖音seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 账号矩阵是通过不同平台不同账号之间建立联系&#xff0c;通过将同一品牌下不同平台不同账号的粉丝流量进行账号互通&a…

【MySQL】不允许你不了解联结表

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

测试人如何高效地设计自动化测试框架?

目录 前言&#xff1a; 什么是自动化测试框架&#xff1f; 好框架的定义 设计框架的思路 自动化测试实施思路&#xff1a; 自动化开展建议&#xff1a; 总结&#xff1a; 前言&#xff1a; 关于测试框架的好处&#xff0c;比如快速回归提高测试效率&#xff0c;提高测试…

IBM服务器RAID5磁盘阵列出现故障的数据恢复案例

服务器数据恢复环境&#xff1a; IBM某型号服务器&#xff0c;服务器中5块SAS磁盘组建了一组RAID5磁盘阵列。划分了一个LUN以及3个分区&#xff1a;第一个分区存放windows server系统&#xff0c;第二个分区存放SQL Server数据库&#xff0c;第三个分区存放备份文件。 服务器故…

第一章:L2JMobius学习 - 安装mariadb10数据库

L2JMobius是一套开源的 LineageII 的服务器端代码&#xff0c;使用Java语言编写。想要运行L2JMobius源程序的话&#xff0c;首先要搭建环境&#xff0c;需要安装mariadb数据库和jdk。本章节&#xff0c;我们介绍如何安装mariadb10 数据库。下载地址为&#xff08;阿里云镜像&am…

分布式运用——监控平台 Zabbix

分布式运用——监控平台 Zabbix 一、监控平台种类二、我们今天介绍Linux操作系统的传统监控平台——zabbix 6.0版本1.zabbix 是什么&#xff1f;2.**zabbix 监控原理&#xff1a;**3.Zabbix 6.0 新特性&#xff1a;4. Zabbix 6.0 功能组件&#xff1a;5.数据库6.Web 界面7.Zabb…

Xcode通过Add package自动集成第三方SDK问题汇总

问题1&#xff1a; 解决方法&#xff1a;这个问题可能是因为 Adjust 或者 Facebook 的库当中依赖的某些类库的仓库地址是 git:// 协议&#xff0c;通过这种协议与 GitHub 通讯时会使用到你的 SSH 配置&#xff0c;你电脑上相关的 ssh key 使用了 GitHub 不再支持的格式&#xf…

Java集合框架进阶学习(ArrayList源码分析、HashMap实现原理)

文章目录 1、算法复杂度1.1、时间复杂度分析1.2、空间复杂度小总结 2、List2.1、数组小总结 2.2、ArrayList源码分析2.3、单向链表2.4、双向链表小总结 3、HashMap3.1、二叉树小总结 3.2、散列表小总结 3.3、HashMap的实现原理3.4、HashMap的put方法的具体流程3.5、HashMap的扩…

简历石沉大海!这份新鲜出炉的测试用人需求分析报告揭示了原因

最近有朋友吐槽简历投递后石沉大海&#xff0c;而主动打电话面试的除了外包还是外包。软件测试就业形势真的这么糟糕了&#xff1f; 小酋决定用数据揭开真相。因此小酋选取“软件测试”、“自动化测试”、“测试开发”作为搜索关键词&#xff0c;统计了 无忧网 近一个月用人市…

目标跟踪基础:两张图片相似度算法

本文来自公众号“AI大道理” —————— 目标跟踪就是在时序帧中搜索目标的过程&#xff0c;本质上就是检索。 不管是传统的目标跟踪中的生成模型和判别模型&#xff0c;还是用深度学习来做目标跟踪&#xff0c;本质上都是来求取目标区域与搜索区域的相似度&#xff0c;这就…

C# 依赖倒置原则(DIP)

目录 一&#xff0c;引子 1.1 传统的程序架构 1.2 依赖倒置 1.3 依赖倒置的作用 二&#xff0c;依赖注入 一&#xff0c;引子 1.1 传统的程序架构 在程序执行过程中&#xff0c;传统的程序架构如图&#xff1a; 可以看到&#xff0c;在传统的三层架构中&#xff0c;层与…

CSS的学习4(盒子模型及浮动)

CSS的学习3&#xff1a;http://t.csdn.cn/xDxIJ 盒子模型 网页布局过程 先准备好相关的网页元素&#xff0c;网页元素基本都是盒子Box利用CSS设置好盒子样式&#xff0c;然后摆放到相应位置往盒子里面装内容 封装周围的HTML元素&#xff1a; 边框&#xff08;border&#…

[网鼎杯 2020 青龙组]AreUSerialz1

代码审计 得到一大串源码&#xff0c;但是不要慌&#xff0c;虽然源码很多&#xff0c;其实题目并不难 这段代码是一个简单的文件读写类 FileHandler&#xff0c;以及一个反序列化函数 unserialize() 的使用。 <?phpinclude("flag.php");highlight_file(__FILE__…

Stable Diffusion 中英文对照中文tag补全

Stable Diffusion是老外做的&#xff0c;因此全部界面都是英文的&#xff0c;因此会对国内很多英语不好的小伙伴来说是一个灾难&#xff0c;不过这里介绍大家一个自定义翻译插件的方法如下图。 还有我们在输入关键词的时候&#xff0c;由于英语水平有限对我们造成阻碍&#xf…

QTTCP客户端服务端通信

目录 网络模块介绍 TCP介绍 TCP 服务端应用实例 TCP 客户端应用实例 运行结果&#xff1a; 网络模块介绍 Qt 网络模块为我们提供了编写 TCP / IP 客户端和服务器的类。它提供了较低级别的类&#xff0c;例 如代表低级网络概念的 QTcpSocket &#xff0c; QTcpServer 和 …

智慧旅游卡APP小程序开发方案

旅游业的蓬勃发展&#xff0c;旅游卡作为一种便捷的旅游支付方式越来越受到人们的喜爱。智慧旅游卡APP小程序开发方案是一种利用微信小程序实现的在线购买旅游卡、查询旅游信息、预约旅游服务等功能的旅游卡APP。下面将详细介绍智慧旅游卡APP小程序的开发方案。 一、智慧旅…

【CDC 2023 Cooperative Aerial Robots Inspection Challenge】

CDC 2023 Cooperative Aerial Robots Inspection Challenge 合作空中机器人检查挑战赛 Install the CARIC packagesRun the flight testThe benchmark designThe UAV fleet CDC 2023 Cooperative Aerial Robots Inspection Challenge 网址 Install the CARIC packages Once t…

旅游卡APP开发解决方案

旅游业的不断发展&#xff0c;旅游卡成为了人们出行时必不可少的一项工具。旅游卡APP开发解决方案旨在为用户提供更加便捷、高效的旅游卡购买和使用体验。下面将详细介绍旅游卡APP开发解决方案的几个方面。 一、旅游卡APP开发解决方案的技术方面 旅游卡APP开发解决方案…

Python pyecharts实时画图自定义可视化经纬度热力图

目录 背景基于pyecharts内置经纬度的热力图基于自定义经纬度的热力图pyecharts库缺点不同地图坐标系区别 WGS-84 - 世界大地测量系统GCJ-02 - 国测局坐标BD-09 - 百度坐标系 背景 在业务数据统计分析中基本都会涉及到各省区的分析&#xff0c;数据可视化是数据分析的一把利器…