工控编程吧
标题:
208上位机VC MFC系统CPU主频名称相关参数获取
[打印本页]
作者:
qq263946146
时间:
2016-2-28 20:39
标题:
208上位机VC MFC系统CPU主频名称相关参数获取
(, 下载次数: 2)
上传
点击文件名下载附件
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);
}}
复制代码
其他函数体可下载例程查看学习
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/f65c5e68a05f70f7d8674dde02b420d2/0/0/w_19rszqinzp.swf-albumId=5385414809-tvId=5385414809-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4