www.pudn.com > IP_phone.rar > SystemInfoDLG.cpp
// SystemInfoDLG.cpp : implementation file
//
#include "stdafx.h"
#include "NC_Client.h"
#include "SystemInfoDLG.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSystemInfoDLG dialog
CSystemInfoDLG::CSystemInfoDLG(CWnd* pParent /*=NULL*/)
: CDialog(CSystemInfoDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CSystemInfoDLG)
m_strVersion = _T("");
m_strWinName = _T("");
m_nAvialPhyMem = 0;
m_nAvialVMem = 0;
m_nTotalPM = 0;
m_nTotalVM = 0;
m_strCpuType = _T("");
m_nCpuSpeed = 0;
m_nFreeDiskSpace = 0;
m_strTotalDiskSpace = _T("");
//}}AFX_DATA_INIT
}
void CSystemInfoDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSystemInfoDLG)
DDX_Control(pDX, IDOK, m_ok);
DDX_Text(pDX, IDC_WINVERSION, m_strVersion);
DDX_Text(pDX, IDC_WINNAME, m_strWinName);
DDX_Text(pDX, IDC_PHYSICMEM_EDIT, m_nAvialPhyMem);
DDX_Text(pDX, IDC_VIRTUALMEM_EDIT, m_nAvialVMem);
DDX_Text(pDX, IDC_TOTALPM, m_nTotalPM);
DDX_Text(pDX, IDC_TOTALVM, m_nTotalVM);
DDX_Text(pDX, IDC_CPUTYPE, m_strCpuType);
DDX_Text(pDX, IDC_CPUSPEED, m_nCpuSpeed);
DDX_Text(pDX, IDC_DISKFREE_EDIT, m_nFreeDiskSpace);
DDX_Text(pDX, IDC_TOTALDISKSPACE_EDIT, m_strTotalDiskSpace);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSystemInfoDLG, CDialog)
//{{AFX_MSG_MAP(CSystemInfoDLG)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSystemInfoDLG message handlers
BOOL CSystemInfoDLG::OnInitDialog()
{
CDialog::OnInitDialog();
//使用sysinfo类
LPSYSINFO siSysInfo;
CSystemInfo m_clsSysInfo;
siSysInfo = m_clsSysInfo.GetSysInfo();
ASSERT(siSysInfo);
m_strVersion = siSysInfo->szWindowsVersion;
m_strWinName = siSysInfo->szWindowsType;
m_nTotalPM = siSysInfo->szPhysicMem / 1024;
m_nTotalVM = siSysInfo->szTotalVirtualMem / 1024;
m_nAvialPhyMem = siSysInfo->szNoUsePhysicMem / 1024;
m_nAvialVMem = siSysInfo->szAvailVirtualMem / 1024;
m_strTotalDiskSpace.Format("%dGB", siSysInfo->szTotalDiskSpace);
m_nFreeDiskSpace = siSysInfo->szFreeDiskSpace;
//得到CPU型号
LONG result;
HKEY hKey;
TCHAR vendorData [64];
DWORD data;
DWORD dataSize;
result = ::RegOpenKeyEx (HKEY_LOCAL_MACHINE,
"Hardware\\Description\\System\\CentralProcessor\\0", 0, KEY_QUERY_VALUE, &hKey);
if (result == ERROR_SUCCESS) {
result = ::RegQueryValueEx (hKey, _T("~MHz"), NULL, NULL,
(LPBYTE)&data, &dataSize);
m_nCpuSpeed = data;
dataSize = sizeof(vendorData);
result = ::RegQueryValueEx (hKey, _T("VendorIdentifier"), NULL, NULL,
(LPBYTE)vendorData, &dataSize);
m_strCpuType.Format ("%s", vendorData);
}
//关闭主键
RegCloseKey (hKey);
//更新数据
UpdateData(FALSE);
SetTimer(1, 500, NULL);
//
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//OnTime
void CSystemInfoDLG::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
case 1:
{
CSystemInfo m_clsSysInfo;
LPSYSINFO siSysInfo;
siSysInfo = m_clsSysInfo.GetSysInfo();
ASSERT(siSysInfo);
m_strVersion = siSysInfo->szWindowsVersion;
m_strWinName = siSysInfo->szWindowsType;
m_nTotalPM = siSysInfo->szPhysicMem / 1024;
m_nTotalVM = siSysInfo->szTotalVirtualMem / 1024;
m_nAvialPhyMem = siSysInfo->szNoUsePhysicMem / 1024;
m_nAvialVMem = siSysInfo->szAvailVirtualMem / 1024;
m_strTotalDiskSpace.Format("%dGB", siSysInfo->szTotalDiskSpace);
m_nFreeDiskSpace = siSysInfo->szFreeDiskSpace;
UpdateData(FALSE);
}
break;
}
//
CDialog::OnTimer(nIDEvent);
}