在开发一个客户端的时候,需要获取到客户端的机器信息,比如CPU的信息、操作系统版本、客户端默认浏览器什么的,苦恼得很,狗咬乌龟——无从下牙。最后发现人家基本上都是在注册表里获取到这些底层信息的,有种当头一棒的感觉,于是自己也尝试用这种方法走走,当然,最后也如愿了!还是先说下我这次博客的目的吧——获取CPU信息。
首先,我们要知道CPU信息在注册表的路径:
HARDWARE\DESCRIPTION\SYSTEM\CentralProcessor\0
知道了注册表中的路径,接着可以上代码了:
///CPU信息获取
LONG result;//注册表打开标志位
LPCTSTR CpuPath = L"HARDWARE\\DESCRIPTION\\SYSTEM\\CentralProcessor\\0";//CPU在注册表的路径
//LPCTSTR browserPath = L"Software\\Microsoft\\Windows\Shell\\Associations\\UrlAssociations\\https\\UserChoice";
HKEY hKey;
DWORD type;
DWORD dwSize;
char strBuf[100];
CString CPUType = _T("");
CString browserProgid = _T("");
//获取CPU信息
result = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,CpuPath,0,
KEY_ALL_ACCESS,&hKey);
if(result == ERROR_SUCCESS)//打开注册表成功
{
::RegQueryValueEx (hKey, L"ProcessorNameString", NULL,
&type, (BYTE *)strBuf, &dwSize);
CPUType.Format(_T("%s"),strBuf);//CPU型号
}
RegCloseKey(hKey);
字符串:ProcessorNameString,这个是CPU名称的键,方法:RegQueryValueEx,用于查询CPU名称键ProcessorNameString对应的值。
CPUType便是最终想要的结果,如截图:
当然啦,获取上图的其他信息,如内存大小、IE版本、默认浏览器等,也可以用这样的办法来获取,大同小于的;
如默认浏览器:注册表地址:
Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice
但是,这个比获取CPU信息稍微要复杂点,如有需要可留言给我哦!