问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VC如何获取硬件ID,CPU,硬件,网卡等

发布网友 发布时间:2022-05-12 00:48

我来回答

1个回答

热心网友 时间:2023-10-31 00:06

这个都有对应的API或者其他层次封装的接口。【初学者仔细阅读MSDN,了解基础知识】--------------------------我随便给你举个例子。定义:
CString DetectCPUType();
CString DetectMemoryType();
变量:
// CPU type
CString m_sCPUNameString;
CString m_sCPUIdentifier;
CString m_sCPUVendorIdentifier;
DWORD m_dwCPUSpeed;

// total physical memory in MB
DWORD m_TotMem;
// total virtual memory
DWORD m_TotVirtMem;

函数:
CString CSystemLocalInfo::DetectCPUType()
{
LONG lresult;
HKEY NewKey;

lresult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T(CPU_CONFIGURATION_KEY),
0,KEY_EXECUTE,&NewKey);

if (ERROR_SUCCESS != lresult) return 0; // key not found

TCHAR szKeyValue[100]; memset(szKeyValue,0,100);
DWORD dwType=REG_SZ; DWORD dwSize=100;

lresult=RegQueryValueEx(NewKey,_T("Identifier"),NULL,
&dwType,(LPBYTE)szKeyValue,&dwSize);

if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUIdentifier=szKeyValue; };

memset(szKeyValue,0,100); dwType=REG_SZ; dwSize=100;

lresult=RegQueryValueEx(NewKey,_T("VendorIdentifier"),NULL,
&dwType,(LPBYTE)szKeyValue,&dwSize);

if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUVendorIdentifier=szKeyValue; };

memset(szKeyValue,0,100); dwType=REG_SZ; dwSize=100;

lresult=RegQueryValueEx(NewKey,_T("ProcessorNameString"),
NULL,&dwType,(LPBYTE)szKeyValue,&dwSize);

if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_sCPUNameString=szKeyValue; };

DWORD dwData=0; dwType=REG_DWORD; dwSize=sizeof(dwData);
lresult=RegQueryValueEx(NewKey,_T("~MHz"),NULL,
&dwType,(LPBYTE)(&dwData),&dwSize);

if ((lresult==ERROR_SUCCESS) && (dwSize>0))
{ m_dwCPUSpeed=dwData; };

RegCloseKey(NewKey);
return szKeyValue;
}

CString CSystemLocalInfo::DetectMemoryType()
{
// TODO: Add extra initialization here
MEMORYSTATUS Mem;
// get the memory status
GlobalMemoryStatus(&Mem);
// set the total memory
this->m_TotMem=(DWORD)Mem.dwTotalPhys/(1024*1024);
this->m_TotVirtMem=(DWORD)Mem.dwTotalVirtual/(1024*1024);

CString Msg;
Msg.Format("物理内存: %ld MB : 虚拟内存: %ld MB",
this->m_TotMem,this->m_TotVirtMem);
return Msg;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦到老婆生下儿子一生下儿子就活蹦乱跳 痤疮的抗生素治疗 胸前皮肤痒如何止痒 马拉色菌毛囊炎 面部怎么清洗? NYC 指数是什么意思? 扬州学区多久划分一次 为什么磁铁的磁场是电磁线的磁场呢? 为什么国内求职很少有overqualified这种说法? ...表示你已经做好了工作的准备,同时怎么让面试官对你有个好的第一印... ...同日本及西欧关系的演变,并简述其对世界和中国的影响。 NVidia GeForce 9800 GT显卡和NVidia GT540M哪个更好? The System detected that an unsupported DDR3 memory type is installed,新买的惠普电脑开机报这个错误 为什么新注册的不能加别人? 映众gtx750ti黑金至尊。gpu-z测试显示memory type是ddr5(Elpida)。 新注册的一个,却加不了别人 jca分析报告中memory type 为internal是什么意思? 新建的 加不了别人 显示操作频繁 别人加我我这也不显示 开机无法进入系统 自检到memory type 就停止了,求高手指点,谢谢 为什么刚注册的别人加不了 memory type GDDR3啥意思 新申请的为何不能加别人 在jca报告中memory type为internal是什么意思? 为什么新的添加别人没有显示 为什么新的添加别人没有显示 加不了好友怎么回事? 新开的怎么加了十几个人之后就加不到人了?怎么回事? 为什么新注册的加不了好友 新申请的为什么加不了好友 弹棉花不沾辊是棉花不好吗? 新创建的加不上好友是什么原因? HTML5中download属性无法定义文件名 读书寄语有哪些啊? 读书的寄语 给孩子的阅读寄语怎么写 做蛋糕搅拌蛋黄糊和蛋白混合大概需要多少时间?六寸三个蛋的量。 鼓励读书的寄语 希望孩子多读书的寄语怎么写? 关于读书家长寄语短句 为什么鸡蛋的蛋清和蛋白不会混在一起? 形容时间快的词语 表示时间极短极快的词语有哪些?比如突然间 ,猛然间, ()间, 晋州宠物之家小泰迪剪毛一次要多少钱? 给泰迪剪个毛要多少钱 帮泰迪剪个毛多少钱,我只要把头,耳朵,脚上的毛剪短点就行了。 孩子的生日快乐祝福语简短的 怎样做凉拌豆腐皮好吃 60周年建国大庆的征文1000字。 急!!! 2009国庆阅兵有感 国之本在家观后心得体会5篇 房屋租赁法律咨询