社区
硬件/系统
帖子详情
VC++如何获取操作系统类型及显卡信息?小弟找了一下午了,还没解决
e251396
2008-12-05 04:17:50
我是个donet程序员,但一个项目中需要用到VC来获取相关信息,但我一点也不懂VC,所以请高手能帮忙一下。谢谢各位了。
...全文
844
19
打赏
收藏
VC++如何获取操作系统类型及显卡信息?小弟找了一下午了,还没解决
我是个donet程序员,但一个项目中需要用到VC来获取相关信息,但我一点也不懂VC,所以请高手能帮忙一下。谢谢各位了。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
火云洞红孩儿
2011-05-19
打赏
举报
回复
看看!!!!!!!!!!!!
adbc_6677
2011-04-03
打赏
举报
回复
顶!!!
taianmonkey
2008-12-06
打赏
举报
回复
OSVERSIONINFO OSVersionInfo;
OSVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&OSVersionInfo);
if (OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT
&& OSVersionInfo.dwMajorVersion == 5
&& OSVersionInfo.dwMinorVersion == 0)
{
AfxMessageBox("Windows 2000 OS!");
}
else if(OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT
&& OSVersionInfo.dwMajorVersion == 5
&& OSVersionInfo.dwMinorVersion == 1)
{
AfxMessageBox("Windows XP OS !");
}
else if(OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS
&& OSVersionInfo.dwMajorVersion == 4
&& OSVersionInfo.dwMinorVersion == 0)
{
AfxMessageBox("Windows 98 OS!");
}
taianmonkey
2008-12-06
打赏
举报
回复
CString strRet = _T("显卡:");
CString strMemSize = _T("");
HRESULT hres = E_FAIL;
IEnumWbemClassObject* pEnumerator = NULL;
hres = m_pSvc->ExecQuery(
bstr_t("WQL"),
bstr_t("SELECT * FROM Win32_VideoController"),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
if (FAILED(hres))
{
cout << "Query for operating system name failed."
<< " Error code = 0x"
<< hex << hres << endl;
m_pSvc->Release();
CoUninitialize();
return FALSE; // Program has failed.
}
// Step 7: -------------------------------------------------
// Get the data from the query in step 6 -------------------
IWbemClassObject *pclsObj;
ULONG uReturn = 0;
LONGLONG llTotal = 0;
while (pEnumerator)
{
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
&pclsObj, &uReturn);
if(0 == uReturn)
{
break;
}
VARIANT vtProp;
// Get the value of the Name property
hr = pclsObj->Get(L"Description", 0, &vtProp, 0, 0);
strRet += vtProp.bstrVal;
// VariantClear(&vtProp);
// hr = pclsObj->Get(L"AdapterRAM", 0, &vtProp, 0, 0);
//strMemSize = vtProp.llVal;
// llTotal += (LONGLONG)&vtProp ;
// strMemSize.Format( _T("(%I64dM)") , ( llTotal / (1024*1024) ) );
// strRet += strMemSize;
VariantClear(&vtProp);
}
return strRet;
Thinkfeng
2008-12-05
打赏
举报
回复
我知道java中能获取系统信息 没用过.net
应该有吧
dbhme
2008-12-05
打赏
举报
回复
ding
android2008
2008-12-05
打赏
举报
回复
ding
dbhme
2008-12-05
打赏
举报
回复
up
android2008
2008-12-05
打赏
举报
回复
up
scq2099yt
2008-12-05
打赏
举报
回复
up 6 floor
lzg0001
2008-12-05
打赏
举报
回复
收藏
oyljerry
2008-12-05
打赏
举报
回复
把上面的guidScsiRaid 换成{4d36e96c-e325-11ce-bfc1-08002be10318} ,上面的代码基本上就差不多了
e251396
2008-12-05
打赏
举报
回复
能给出具体的代码吗?我没写过这样的代码.
oyljerry
2008-12-05
打赏
举报
回复
Display Adapters
Class = Display
ClassGuid = {4d36e968-e325-11ce-bfc1-08002be10318}
Multimedia
Class = Media
ClassGuid = {4d36e96c-e325-11ce-bfc1-08002be10318}
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <setupapi.h>
int main(int argc, char* argv[])
{
DWORD dwIdx = 0;
SP_DEVINFO_DATA adapterData;
DWORD dwType = 0;
DWORD dwBuflen = 0;
PUCHAR pBuf = NULL;
HDEVINFO hScsi = INVALID_HANDLE_VALUE;
GUID guidScsiRaid = {
0x4D36E97B,
0xE325,
0x11CE,
{0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18}
};
BOOL bret = FALSE;
hScsi = SetupDiGetClassDevs(&guidScsiRaid
, NULL, NULL, DIGCF_PRESENT);
adapterData.cbSize = sizeof(SP_DEVINFO_DATA);
for(dwIdx = 0; SetupDiEnumDeviceInfo(hScsi, dwIdx, &adapterData); dwIdx++)
{
SetupDiGetDeviceRegistryProperty(
hScsi,
&adapterData,
SPDRP_DEVICEDESC,
&dwType,
NULL,
0,
&dwBuflen
);
if(ERROR_INSUFFICIENT_BUFFER == GetLastError())
{
pBuf = (PUCHAR)malloc(dwBuflen);
if(SetupDiGetDeviceRegistryProperty(
hScsi,
&adapterData,
SPDRP_DEVICEDESC,
&dwType,
pBuf,
dwBuflen,
NULL
))
{
printf("%s\n", pBuf);
}
free(pBuf);
pBuf = NULL;
}
}
SetupDiDestroyDeviceInfoList(hScsi);
return 0;
}
一条晚起的虫
2008-12-05
打赏
举报
回复
GetSystemInfo()好像得不到这么多信息
试试
Win32_DisplayConfiguration
oyljerry
2008-12-05
打赏
举报
回复
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
下面依此读取所有的项,直到找到Class键的值为Display(显卡)或MEDIA(声卡),
找到后读取下面的键值
也可以通过WMI来读取。。。
如果在没有装驱动的情况下读取信息,估计需要通过读取主板bios,显卡bios等来得到。。
e251396
2008-12-05
打赏
举报
回复
芯片型号,显存及驱动程序的版本之类的啊
一条晚起的虫
2008-12-05
打赏
举报
回复
获取操作系统版本:GetVersionEx,例子
http://msdn.microsoft.com/en-us/library/ms724429(VS.85).aspx
//显卡信息:要得到哪些信息?
e251396
2008-12-05
打赏
举报
回复
没人知道吗?
基础
各位兄弟,在SDK编程中如果实现窗口分割呢?请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用v
c++
调试编制的组件怎样画一个箭头?高分请教如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit的朋友过来看一下,RichEdit的几个问题.如何对 I/O 端口进行操作?有了该问题就有了思考(100分 献礼!)如何
Jiangsheng的CSDN Digest(March 4, 2006)
为了便于搜索,这里尽可能保留了论坛上讨论的原文,但是这并不表示本人赞同帖子中的表述方式和观点。CSDN 讨论总结系列: Jiangsheng的CSDN Digest (Jan 21 2006)( http://blog.csdn.net/jiangsheng/archive/2006/03/05/615669.aspx) Jiangsheng的CSDN Digest
IT学生解惑真经
非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。 --------韩愈《师说》 在校的IT学生有几百万 都在为如何如何学习才能
找
到工作、融入社会而迷惑 我们需要的不是灵丹妙药 而是一本让你少走几年弯路的 IT学生解惑真经 肖舸杨中科左飞著 这是一部写给在校计算机专业学生的书 如果
没
有看到这本书 你可能会茫然无措...
数据可视化
excel提供了商业标准的可视化内容,但总显笨拙。也不希望excel形成垄断,到时候坐地起价。程序员的求知天性,也要求随心所欲得设计,总希望是设置参数而不是选项,是调用函数而不是下拉列表框。自由是要付出代价的,就像到地摊上淘A货,或者自已起炉灶。 总会用种种问题,不能显示中文,代码页不同,不能调整大小。众多的媒体推送,看着眼花缭乱。一看就会,一做就废。都成股市里的庄家,套路满满。听话就有糖吃的时代一去不复返。 Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来
解决
。这里我们使用思源黑体
IT学生解惑真经(转) (真的好经典!)
生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。 --------韩愈《师说》 在校的IT学生有几百万 都在为如何如何学习才能
找
到工作、融入社会而迷惑 我们需要的不是灵丹妙药 而是一本让你少走几年弯路的 IT学生解惑真经 肖舸 杨中科 左飞 著 这是一部写给在校计算机专业学生的书 如果
没
有看到这本书 你可能会茫然无措的度...
硬件/系统
2,644
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章