void CGetSysInfo::GetDisplayCardInfo(DWORD &dwNum,CString chCardName[])
{
HKEY keyServ;
HKEY keyEnum;
HKEY key;
HKEY key2;
LONG lResult;//LONG型变量-保存函数返回值
//查询"SYSTEM\\CurrentControlSet\\Services"下的所有子键保存到keyServ
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SYSTEM\\CurrentControlSet\\Services"),0,KEY_READ,&keyServ);
if (ERROR_SUCCESS != lResult)
return;
//查询"SYSTEM\\CurrentControlSet\\Enum"下的所有子键保存到keyEnum
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("SYSTEM\\CurrentControlSet\\Enum"),0,KEY_READ,&keyEnum);
if (ERROR_SUCCESS != lResult)
return;
int i = 0,count = 0;
DWORD size = 0,type = 0;
for (;;++i)
{
Sleep(5);
size = 512;
TCHAR name[512] = {0};//保存keyServ下各子项的字段名称
//逐个枚举keyServ下的各子项字段保存到name中
lResult = RegEnumKeyEx(keyServ,i,name,&size,NULL,NULL,NULL,NULL);
//要读取的子项不存在,即keyServ的子项全部遍历完时跳出循环
if(lResult == ERROR_NO_MORE_ITEMS)
break;
//打开keyServ的子项字段为name所标识的字段的值保存到key
lResult = RegOpenKeyEx(keyServ,name,0,KEY_READ,&key);
if (lResult != ERROR_SUCCESS)
{
RegCloseKey(keyServ);
return;
}
size = 512;
//查询key下的字段为Group的子键字段名保存到name
lResult = RegQueryValueEx(key,TEXT("Group"),0,&type,(LPBYTE)name,&size);
if(lResult == ERROR_FILE_NOT_FOUND)
{
//?键不存在
RegCloseKey(key);
continue;
};
//如果查询到的name不是Video则说明该键不是显卡驱动项
if(_tcscmp(TEXT("Video"),name)!=0)
{
RegCloseKey(key);
continue; //返回for循环
};
//如果程序继续往下执行的话说明已经查到了有关显卡的信息,所以在下面的代码执行完之后要break第一个for循环,函数返回
lResult = RegOpenKeyEx(key,TEXT("Enum"),0,KEY_READ,&key2);
RegCloseKey(key);
key = key2;
size = sizeof(count);
lResult = RegQueryValueEx(key,TEXT("Count"),0,&type,(LPBYTE)&count,&size);//查询Count字段(显卡数目)
dwNum = count;//保存显卡数目
for(int j=0;j <count;++j)
{
TCHAR sz[512] = {0};
TCHAR name[64] = {0};
wsprintf(name,TEXT("%d"),j);
size = sizeof(sz);
lResult = RegQueryValueEx(key,name,0,&type,(LPBYTE)sz,&size);
lResult = RegOpenKeyEx(keyEnum,sz,0,KEY_READ,&key2);
if (ERROR_SUCCESS)
{
RegCloseKey(keyEnum);
return;
}
size = sizeof(sz);
lResult = RegQueryValueEx(key2,TEXT("FriendlyName"),0,&type,(LPBYTE)sz,&size);
if(lResult == ERROR_FILE_NOT_FOUND)
{
size = sizeof(sz);
lResult = RegQueryValueEx(key2,TEXT("DeviceDesc"),0,&type,(LPBYTE)sz,&size);
chCardName[j] = sz;//保存显卡名称
};
RegCloseKey(key2);
key2 = NULL;
};
RegCloseKey(key);
key = NULL;
break;
}
}相关推荐
MFC实现获取电脑CPU核心数、显卡型号和内存大小等硬件信息的功能
MFC实现获取电脑CPU核心数、显卡型号和内存大小等硬件信息的功能
C++检测多显示器并把窗口显示在不同显示器上(完整源码)
C++检测多显示器并把窗口显示在不同显示器上
构建VC++硬件信息查看器:从理论到实战
htmltable {th, td {th {pre {简介:本项目专注于使用Visual C++(VC++)开发一个系统硬件信息查看器,详细展示如何利用C++和Windows API获取CPU、内存及其他硬件组件的数据。项目中会讨论如何通过Win32 API与操作系统交互,获取和解析CPU和内存信息,以及如何使用MFC库设计用户界面,实时更新硬件统计数据,并处理潜在错误,优化代码性能。
windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
GetsysInfo.h: #ifndef _H_GETSYSINFO #define _H_GETSYSINFO #pragma once #include <afxtempl.h> class GetSysInfo { public: GetSysInfo(void); ~GetSysInfo(void); public: /********获取操作系统版本,Service pack版本、系统类型************/ void GetOSVersion(
掌握MFC绘图应用:DrawView项目实战
MFC(Microsoft Foundation Classes)是微软提供的一套用于Windows应用程序开发的C++类库,它封装了Windows API,使得开发者可以方便地使用面向对象的方式进行Windows编程。MFC具有广泛的影响力,尤其在Visual C++的发展历程中扮演了重要角色。Visual Studio 2010 是微软公司推出的强大的集成开发环境(IDE),在Windows平台下支持C/C++、C#、VB.NET等多种语言的开发。良好的安装与配置是确保开发效率和稳定性的重要前提。
C++ 获取硬件信息
封装获取硬件信息,使用灵活的设计模式使代码具备可扩展性、可调式性,使用DUILIB做测试例子。
C/C++通过WMI和系统API函数获取获取系统硬件配置信息
前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU、内存、网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧... 当然第一想法肯定是利用Windows提供的系统标准API函数来完成所需的功能,当然这也应该是当前最理想最有效率的选择了。但是如果你对API编程不是很熟练的话...那就相当蛋疼了!你知道用API可以做到但是不知道用哪个AP
c#设置和获取分辨率
c#实现,设置系统分辨率和获取当前的分辨率,主要是写一个Resolution类,非常简单,直接引用这个类然后调用方法就可实现,新手或入门的朋友可以参考下。 //设置分辨率,width宽,height高,displayFrequency刷新频率,设置成功返回true,否则false //调用方式: setResolution(1024, 768, 75); //设置分辨率,width宽,height高,displayFrequency刷新频率,bitsPerPel颜色位数,设置成功返回true,否则false //调用方式: setResolution(1024, 768, 75, 32); //返回当前图形模式信息 public DEVMODE getResolution() //返回所有支持图形模式 public List getAllResolution()
php 获取显卡信息,VC获取硬件信息
源码资源:获取本机CPU、硬盘、内存信息的MFC程序 http://download.youkuaiyun.com/detail/crazyhan00/2387333获取计算机硬件信息的类http://www.seacha.com/article.php/knowledge/windows/mfc/2011/0423/319.htmlVC获取硬件信息(如硬盘物理序列号及CPUID,主板序列号等等)//an为8...
C++使用MFC获取PC硬件配置信息
主要为大家详细介绍了C++使用MFC获取PC硬件配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析
本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。
MFC中的DC,CDC和HDC
MFC中的DC,CDC和HDC 设备描述表(DC)是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。 图形显示功能是由显卡来完成的,你想要利用显卡的图形显示功能来完成你的图形输出,怎么办,给你一块硬件能用吗?好,现在厂商给你提供一个驱动程序,给你一些调用的接口,你就可以访问了吧。但这种访
Vivado固化程序与Flash型号添加实战指南
本文详细介绍了Vivado程序固化到Flash芯片的完整流程,包括基础操作、Flash型号添加方法及疑难问题排查。针对Vivado官方支持列表缺失的Flash型号,提供了手动添加配置的详细步骤和参数说明,并分享了高级技巧与安全操作建议,帮助开发者高效完成FPGA程序固化。
wmi获取硬件信息c语言,通过 WMI来获取本地计算机软件硬件信息
一网打尽介绍及款工具 WMITools和WMICodeCreator 生成.net或vbs代码来操作WMI的。您想需要怎么调用都可以了。具体怎么下,google或bing下吧。相关脚本'On Error Resume NextDim fso,f1strComputer = "."If Err.Description = "" Then'收集计算机用户信息Set objWmi = GetObjec...
Python爬虫实战:手把手教你用Selenium绕过药监局网站的反爬机制(附完整代码)
本文详细介绍了如何使用Selenium绕过药监局网站的反爬机制,提供了一套完整的Python爬虫实战方案。通过浏览器指纹伪装、动态等待策略、会话维持技巧以及分布式采集设计,帮助开发者高效爬取药监局数据,解决政府类网站常见的反爬挑战。
病理图像处理个人手札(三)WSI & MIL
1.什么是WSI? WSI全称是Whole Slide Image,也就是全视野数字切片,主要应用在病理学细胞图像领域。WSI 是利用数字扫描仪对传统的病理切片进行扫描,采集具有高分辨率的数字图像,再通过计算机将得到的碎片化图像进行无缝拼接整合,制作可视化数字图像的一项技术。与传统载玻片相比,很好地解决了传统的玻璃切片易损坏、易褪色、易丢片、检索困难的问题。 一言以蔽之,WSI是对传统载玻片进行数字化。 由于是全视野,因此它将包含多尺度的切片在一个文件上面。因此WSI将使用到金字塔模型满足其支持不同分辨率的
VC获取硬件信息
VC获取硬件信息(如硬盘物理序列号及CPUID,主板序列号等等) //an为8字节缓存 int GetCPUid(BYTE *an) { unsigned long s1 = 0,s2=0; _asm { mov eax,01h xor edx,edx cpuid mov
ASPICE标准快速掌握「2.1. 过程能力概览」
一个项目的质量流程是否做的好最终会需要由一个指标来确定,ASPICE将其称为过程能力(Process capability),过程能力是一个综合的判定概念。而为了实现这个概念,ASPICE建立了一套完整的过程评估模型(Process Assessment Model),通过这套评估模型最终就能得出过程能力的最终得分。项目组根据这个得分不断改进和优化得分不足的方面,从而约束整个流程的各个方面来间接提升项目的最终质量。这里有三个关键术语:其中最主要的就是PAM,即过程评估模型,由ASPICE给出,该模型可以看成
wmi获取硬件信息c语言,通过WMI获取系统硬件信息解决办法
当前位置:我的异常网» VC/MFC»通过WMI获取系统硬件信息解决办法通过WMI获取系统硬件信息解决办法www.myexceptions.net,网友分享于:2013-01-01浏览:352次通过WMI获取系统硬件信息找到一个采用VBS脚本,通过WMI获取系统信息的程序,代码如下:On Error Resume NextstrComputer = "."Set objWMIServic...
【SpringBoot 3.x 第56节】再见 Feign?原生 HTTP 接口强势上位,这才是微服务调用的正确姿势!
🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。 本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。 若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章
今日指数项目之实时流数据采集【六】
实时数据采集代码
MFC学习:DC,CDC和HDC
设备描述表(DC) 是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。 关于设备描述表可以从以下三种理解方式理解: 一、 概述化的描述: 图形显示功能是由显卡来完成的(否则,你买显卡干吗),你想要利用显卡的图形显示功能来完成你的图形输出,怎么办,给你一块硬件能用吗(得懂微电子了)?好,现在厂商给你提供一个驱动程序,给你一些调用的接口,你就可以访问了吧。但这种访问是在驱动层,是不是很麻烦,更麻烦的是,每个厂商给自己显卡提供的驱动程序还不
KMD 核心功能模块——命令提交与调度:Ring Buffer 与硬件引擎交互
《KMD 中的中断与同步机制——从 Fence 到 Timeline Semaphore 的深度解析》GPU 需要持续接收命令,但硬件执行是流式处理。Ring Buffer 作为。导致 CVE-2022-1234(GPU 挂起),修复后强制检查。:命令提交延迟从 50μs 降至 5μs(20 倍提升)。,CPU 通过写入该地址更新指针(避免直接操作寄存器)。,实现 CPU 与 GPU 的高效协同。),GPU 读指针更新是硬件自动完成的。(通过硬件状态机),实现真正的零等待。AMDGPU 驱动曾因。
878



被折叠的 条评论
为什么被折叠?



