QQ登录

只需一步,快速开始

377上位机VC MFC通过注册表获取系统CPU内存信息

[ 复制链接 ]

377上位机VC MFC通过注册表获取系统CPU内存信息

377上位机VC MFC通过注册表获取系统CPU内存信息

获取系统CPU内存信息
功能展示
程序运行都会对系统有些要求,不然程序功能不能完全执行,或会影响系统的稳定性,所以在程序运行或安装前就得获取系统的相关参数来判断是否安装或运行我们的程序,我们当前例程就通过注册表实现系统版本,CPU,内存等信息的获取,效果如图。点出按钮后例程会从注册表读取系统的信息,其中内存大小是通过函数GlobalMemoryStatus()获取

要点提示
系统CPU处理器的相关信息都保存在注册表HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0子键下,0表示第O个CPU,系统有多个CPU,可能还会有1,2,3等等。子键右侧有众多健值项,其中名为~MHz 键值项对应的值就是CPU的频率,单位MHz;

系统的版本信息存储在注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion子键下,子键右侧有众多键值项,其中ProductName键值项为系统的名称,CurrentVersion为系统的当前版本,ProductId为系统的ID;

另外系统的内存信息是通过GlobalMemoryStatus()函数获取,函数仅跟一个结构体指针参数MEMORYSTATUS ms,结构体的成员ms.dwTotalPhys便是内存大小,单位byte;

实现功能
1.新建基于对话框的应用程序
2.添加编辑框控件IDC_EDIT1,IDC_EDIT2,IDC_EDIT3分别对应系统版本,CPU主频,内存大小,再添加按钮<获取系统信息>关联点击函数实现功能

void CGkbc8Dlg::OnButton1()
{
CString sText,sTemp;
HKEY hKey;
DWORD dwType = REG_DWORD, dwSize = sizeof(DWORD);
DWORD dwCpuSpeed;
char cData[_MAX_PATH];
//<>CPU主频
int nResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",
0, KEY_READ, &hKey);
if(ERROR_SUCCESS != nResult)
{
MessageBox("打开注册表失败");
return ;
}
nResult = RegQueryValueEx(hKey, "~MHz", NULL,&dwType, (BYTE*)&dwCpuSpeed, &dwSize);
if(ERROR_SUCCESS != nResult)
MessageBox("获取主频失败");
RegCloseKey(hKey);
sText.Format("CPU主频为:%dMHz",dwCpuSpeed);
SetDlgItemText(IDC_EDIT2,sText);

//<>系统版本
nResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",0,KEY_READ, &hKey);
dwSize = _MAX_PATH;
RegQueryValueEx(hKey, "ProductName", NULL,&dwType, (unsigned char *)cData, &dwSize);
sTemp.Format("系统名:%s/ ",cData); sText = sTemp;
dwSize = _MAX_PATH;
RegQueryValueEx(hKey, "CurrentVersion", NULL,&dwType, (unsigned char *)cData, &dwSize);
sTemp.Format("版本:%s/ ",cData); sText += sTemp;
dwSize = _MAX_PATH;
RegQueryValueEx(hKey, "ProductId", NULL,&dwType, (unsigned char *)cData, &dwSize);
sTemp.Format("ID:%s",cData); sText += sTemp;
RegCloseKey(hKey);
SetDlgItemText(IDC_EDIT1,sText);
//<>
MEMORYSTATUS ms ;
ms.dwLength = sizeof (ms) ;
GlobalMemoryStatus (&ms) ;
sText.Format("Memory: %u Mb physical, %u Mb virtual\n",
(ms.dwTotalPhys)/(1024*1024)+1, (ms.dwTotalVirtual)/(1024*1024)+1);
SetDlgItemText(IDC_EDIT3,sText);
}
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:377.上位机VC MFC通过注册表获取系统CPU内存信息.zip 
文件大小:137.27 KB  售价:11金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

快速回复 返回列表 客服中心 搜索