208上位机VC MFC系统CPU主频名称相关参数获取
208上位机VC MFC系统CPU主频名称相关参数获取 功能展示 获取电脑系统CPU相关的参数如主频制造商等可以进行相关功能的判断,比如是否能运行我们开发的程序,我们当前例程实现系统CPU名称厂商主频CPU个数等相关参数的获取,效果如图; 要点提示 一.CPU的名称与生产厂商可以通过读取注册表获取,在注册表位置"HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"; CPU的名称键名为:ProcessorNameString; CPU的标识键名为:Identifier; CPU的制造商键名为:VendorIdentifier; 二. CPU是否支持3DNow可以用函数IsProcessorFeaturePresent(7),7对应PF_3DNOW_INSTRUCTIONS_AVAILABLE; 三. CPU是否支持MMX可以用函数IsProcessorFeaturePresent(3),3对应PF_MMX_INSTRUCTIONS_AVAILABLE; 四. CPU提供安全特性与否可以用函数::GetSystemMetrics(SM_SECURE); 要注意的是在WIN7系统上进行注册表的读取,程序得具有管理员操作权限.管理员权限的获取方法可以参数例程的演示视频学习 实现功能 1.新建基于对话框的应用程序 2.拖拽一列表框ID为IDC_LIST1用于显示获得的信息;依次拖拽按钮控件<CPU名称><CPU标识><CPU厂商><CPU主频><CPU个数><CPU支持3DNow?><CPU支持MMX?><CPU提供安全功能?><CPU具有抵挡处理器?>关联函数实现相应功能;下面为按钮函数体部分: - void CGkbc8Dlg::OnCpuname()
- {
- m_List.ResetContent();//清空内容
- m_List.SetHorizontalExtent(600);//长度设置
- HKEY hKey;
- LPCTSTR StrKey="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
- if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
- {
- DWORD dwSize=255,dwType=REG_SZ;
- char String[256];
- LPCSTR KeyValue="ProcessorNameString";
- if (ERROR_SUCCESS==::RegQueryValueEx(hKey,KeyValue,0,&dwType,(BYTE *)String,&dwSize))
- {
- CString sText("CPU的名称为:");
- sText+=String;
- m_List.InsertString(0,sText);
- }
- ::RegCloseKey(hKey);
- }
- }
复制代码- void CGkbc8Dlg::OnCputag()
- {
- HKEY hKey;
- LPCTSTR StrKey="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
- if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
- {
- DWORD dwSize=255,dwType=REG_SZ;
- char String[256];
- LPCSTR KeyValue="Identifier";
- if (ERROR_SUCCESS==::RegQueryValueEx(hKey,KeyValue,0,&dwType,(BYTE *)String,&dwSize))
- {
- CString sText("CPU的标识为:");
- sText+=String;
- m_List.InsertString(0,sText);
- }
- ::RegCloseKey(hKey);
- }
- }
- void CGkbc8Dlg::OnCpumanu()
- {
- HKEY hKey;
- LPCTSTR StrKey="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
- if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
- {
- DWORD dwSize=255,dwType=REG_SZ;
- char String[256];
- LPCSTR KeyValue="VendorIdentifier";
- if (ERROR_SUCCESS==::RegQueryValueEx(hKey,KeyValue,0,&dwType,(BYTE *)String,&dwSize))
- {
- CString sText("CPU的制造商为:");
- sText+=String;
- m_List.InsertString(0,sText);
- }
- ::RegCloseKey(hKey);
- }}
复制代码 其他函数体可下载例程查看学习 我们来演示下功能实现的整个过程
|