C++ 获取计算机CPU信息

CString strPath = _T("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");//注册表子键路径  
CRegKey regkey;//定义注册表类对象  
LONG lResult;//LONG型变量-反应结果  
lResult = regkey.Open(HKEY_LOCAL_MACHINE, LPCTSTR(strPath), KEY_ALL_ACCESS); //打开注册表键  
if (lResult != ERROR_SUCCESS)
{
return;
}
DWORD dwSize = 128;
//获取ProcessorNameString字段值  
if (ERROR_SUCCESS == regkey.QueryStringValue(_T("ProcessorNameString"), memorycpu.ProcessorName, &dwSize))
{
printf("%S\n", memorycpu.ProcessorName);
}
//查询CPU主频  
// DWORD dwValue;
if (ERROR_SUCCESS == regkey.QueryDWORDValue(_T("~MHz"), memorycpu.dwMaxClockSpeed))
{
printf("处理器频率:%ld\n", memorycpu.dwMaxClockSpeed);
}
regkey.Close();//关闭注册表  
//获取CPU核心数目  
SYSTEM_INFO si;
memset(&si, 0, sizeof(SYSTEM_INFO));
GetSystemInfo(&si);
memorycpu.dwNum = si.dwNumberOfProcessors;
switch (si.dwProcessorType)
{
case PROCESSOR_INTEL_386:
{
memcpy(memorycpu.ProcessorType, _T("Intel 386 processor"), 128);
}
break;
case PROCESSOR_INTEL_486:
{
memcpy(memorycpu.ProcessorType, _T("Intel 486 Processor"), 128);
}
break;
case PROCESSOR_INTEL_PENTIUM:
{
memcpy(memorycpu.ProcessorType, _T("Intel Pentium Processor"), 128);
}
break;
case PROCESSOR_INTEL_IA64:
{
memcpy(memorycpu.ProcessorType, _T("Intel IA64 Processor"), 128);
}
break;
case PROCESSOR_AMD_X8664:
{
memcpy(memorycpu.ProcessorType, _T("AMD X8664 Processor"), 128);
}
break;
default:
memcpy(memorycpu.ProcessorType, _T("未知"), 128);
break;

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值