mfc 获取显卡信息

深入分析MFC之GDI原理透析 为什么会使用GDI呢? 首先要理解一般显示器,是将要显示的内容存放在显存中,framebuffer就是用来存储显示的数据,由DMA自动读取数据将其显示在窗口中,而这里显示的只是一个个的像素点。通常是先显示一行的像素点,发出水平同步信号后,再显示下一行,当整个一屏幕的数据显示完全后,才会发出垂直同步信号,发出下一帧数据。注意这里。。。 MFC如何使用GDI? 首先对于GDI而言,他并不是将图像直接显示在设备上,而是将显示的数据首先绘制在一个设备描述表DC中,这里面存储了显示图像的描述字段,包括物理设备和各种状 阅读详情
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]设备环境CDC类及其派生 1. MFC对GDI的封装——CDC类:     1) Graphical Device Interface:即图形设备接口,是一种编程接口,用以简单地通过函数调用来控制实际的物理图形设备的行为;     2) Windows实现了GDI与图形平台无关的特性,即对于不同显示器、显卡、打印机的操作都可采用同样的GDI来实现;     3) MFC将过去Win32的GDI进行了面向对象封装,并且 阅读详情

相关推荐

MFC实现获取电脑CPU核心数、显卡型号和内存大小等硬件信息的功能

MFC实现获取电脑CPU核心数、显卡型号和内存大小等硬件信息的功能

希望我的博客,能帮上你解决学习中工作中所遇到的问题 878

C++检测多显示器并把窗口显示在不同显示器上(完整源码)

C++检测多显示器并把窗口显示在不同显示器上

编程之道在明明德在亲民在止于至善 2938

构建VC++硬件信息查看器:从理论到实战

htmltable {th, td {th {pre {简介:本项目专注于使用Visual C++(VC++)开发一个系统硬件信息查看器,详细展示如何利用C++和Windows API获取CPU、内存及其他硬件组件的数据。项目中会讨论如何通过Win32 API与操作系统交互,获取和解析CPU和内存信息,以及如何使用MFC库设计用户界面,实时更新硬件统计数据,并处理潜在错误,优化代码性能。

weixin_34640289的博客 1135

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(

乌托邦 2640

掌握MFC绘图应用:DrawView项目实战

MFC(Microsoft Foundation Classes)是微软提供的一套用于Windows应用程序开发的C++类库,它封装了Windows API,使得开发者可以方便地使用面向对象的方式进行Windows编程。MFC具有广泛的影响力,尤其在Visual C++的发展历程中扮演了重要角色。Visual Studio 2010 是微软公司推出的强大的集成开发环境(IDE),在Windows平台下支持C/C++、C#、VB.NET等多种语言的开发。良好的安装与配置是确保开发效率和稳定性的重要前提。

weixin_42389113的博客 775

C++ 获取硬件信息

封装获取硬件信息,使用灵活的设计模式使代码具备可扩展性、可调式性,使用DUILIB做测试例子。

C/C++通过WMI和系统API函数获取获取系统硬件配置信息

前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU、内存、网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧...      当然第一想法肯定是利用Windows提供的系统标准API函数来完成所需的功能,当然这也应该是当前最理想最有效率的选择了。但是如果你对API编程不是很熟练的话...那就相当蛋疼了!你知道用API可以做到但是不知道用哪个AP

wenliabc2007的专栏 2万+

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...

weixin_39553705的博客 262

C++使用MFC获取PC硬件配置信息

主要为大家详细介绍了C++使用MFC获取PC硬件配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析

本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。

a1b2c的博客 809

MFC中的DC,CDC和HDC

MFC中的DC,CDC和HDC        设备描述表(DC)是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。         图形显示功能是由显卡来完成的,你想要利用显卡的图形显示功能来完成你的图形输出,怎么办,给你一块硬件能用吗?好,现在厂商给你提供一个驱动程序,给你一些调用的接口,你就可以访问了吧。但这种访

yam_killer的专栏 3万+

Vivado固化程序与Flash型号添加实战指南

本文详细介绍了Vivado程序固化到Flash芯片的完整流程,包括基础操作、Flash型号添加方法及疑难问题排查。针对Vivado官方支持列表缺失的Flash型号,提供了手动添加配置的详细步骤和参数说明,并分享了高级技巧与安全操作建议,帮助开发者高效完成FPGA程序固化。

weixin_29291573的博客 567

wmi获取硬件信息c语言,通过 WMI来获取本地计算机软件硬件信息

一网打尽介绍及款工具 WMITools和WMICodeCreator 生成.net或vbs代码来操作WMI的。您想需要怎么调用都可以了。具体怎么下,google或bing下吧。相关脚本'On Error Resume NextDim fso,f1strComputer = "."If Err.Description = "" Then'收集计算机用户信息Set objWmi = GetObjec...

weixin_39586825的博客 2383

Python爬虫实战:手把手教你用Selenium绕过药监局网站的反爬机制(附完整代码)

本文详细介绍了如何使用Selenium绕过药监局网站的反爬机制,提供了一套完整的Python爬虫实战方案。通过浏览器指纹伪装、动态等待策略、会话维持技巧以及分布式采集设计,帮助开发者高效爬取药监局数据,解决政府类网站常见的反爬挑战。

weixin_42620255的博客 738

病理图像处理个人手札(三)WSI & MIL

1.什么是WSI? WSI全称是Whole Slide Image,也就是全视野数字切片,主要应用在病理学细胞图像领域。WSI 是利用数字扫描仪对传统的病理切片进行扫描,采集具有高分辨率的数字图像,再通过计算机将得到的碎片化图像进行无缝拼接整合,制作可视化数字图像的一项技术。与传统载玻片相比,很好地解决了传统的玻璃切片易损坏、易褪色、易丢片、检索困难的问题。 一言以蔽之,WSI是对传统载玻片进行数字化。 由于是全视野,因此它将包含多尺度的切片在一个文件上面。因此WSI将使用到金字塔模型满足其支持不同分辨率的

baiweizeng的博客 1万+

VC获取硬件信息

VC获取硬件信息(如硬盘物理序列号及CPUID,主板序列号等等) //an为8字节缓存 int GetCPUid(BYTE *an) { unsigned long s1 = 0,s2=0; _asm { mov eax,01h xor edx,edx cpuid mov

thanklife的专栏 6576

ASPICE标准快速掌握「2.1. 过程能力概览」

一个项目的质量流程是否做的好最终会需要由一个指标来确定,ASPICE将其称为过程能力(Process capability),过程能力是一个综合的判定概念。而为了实现这个概念,ASPICE建立了一套完整的过程评估模型(Process Assessment Model),通过这套评估模型最终就能得出过程能力的最终得分。项目组根据这个得分不断改进和优化得分不足的方面,从而约束整个流程的各个方面来间接提升项目的最终质量。这里有三个关键术语:其中最主要的就是PAM,即过程评估模型,由ASPICE给出,该模型可以看成

雪云飞星的博客 1184

wmi获取硬件信息c语言,通过WMI获取系统硬件信息解决办法

当前位置:我的异常网» VC/MFC»通过WMI获取系统硬件信息解决办法通过WMI获取系统硬件信息解决办法www.myexceptions.net,网友分享于:2013-01-01浏览:352次通过WMI获取系统硬件信息找到一个采用VBS脚本,通过WMI获取系统信息的程序,代码如下:On Error Resume NextstrComputer = "."Set objWMIServic...

weixin_27787297的博客 534

【SpringBoot 3.x 第56节】再见 Feign?原生 HTTP 接口强势上位,这才是微服务调用的正确姿势!

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1017

今日指数项目之实时流数据采集【六】

实时数据采集代码

Maynor的博客 2147

MFC学习:DC,CDC和HDC

设备描述表(DC) 是Windows中的一种数据结构,它包含GDI需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。 关于设备描述表可以从以下三种理解方式理解: 一、 概述化的描述: 图形显示功能是由显卡来完成的(否则,你买显卡干吗),你想要利用显卡的图形显示功能来完成你的图形输出,怎么办,给你一块硬件能用吗(得懂微电子了)?好,现在厂商给你提供一个驱动程序,给你一些调用的接口,你就可以访问了吧。但这种访问是在驱动层,是不是很麻烦,更麻烦的是,每个厂商给自己显卡提供的驱动程序还不

An_dy_code的博客 744

KMD 核心功能模块——命令提交与调度:Ring Buffer 与硬件引擎交互

《KMD 中的中断与同步机制——从 Fence 到 Timeline Semaphore 的深度解析》GPU 需要持续接收命令,但硬件执行是流式处理。Ring Buffer 作为。导致 CVE-2022-1234(GPU 挂起),修复后强制检查。:命令提交延迟从 50μs 降至 5μs(20 倍提升)。,CPU 通过写入该地址更新指针(避免直接操作寄存器)。,实现 CPU 与 GPU 的高效协同。),GPU 读指针更新是硬件自动完成的。(通过硬件状态机),实现真正的零等待。AMDGPU 驱动曾因。

amy_mhd的博客 83
上一篇: mfc 获取C盘信息
下一篇: windows下通过注册表来获取计算机相关信息
RuningPigNO1
博客等级 码龄10年 22粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuningPigNO1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值