HardwareInfoDlg.cpp
上传用户:xsxdsb
上传日期:2009-12-14
资源大小:672k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // HardwareInfoDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "HardwareInfoDemo.h"
  5. #include "HardwareInfoDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CHardwareInfoDlg dialog
  13. CHardwareInfoDlg::CHardwareInfoDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CHardwareInfoDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CHardwareInfoDlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CHardwareInfoDlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CHardwareInfoDlg)
  24. DDX_Control(pDX, IDC_STATIC_MEMORY, m_Memory);
  25. DDX_Control(pDX, IDC_STATIC_CPUTYPE, m_CpuType);
  26. //}}AFX_DATA_MAP
  27. }
  28. BEGIN_MESSAGE_MAP(CHardwareInfoDlg, CDialog)
  29. //{{AFX_MSG_MAP(CHardwareInfoDlg)
  30. //}}AFX_MSG_MAP
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CHardwareInfoDlg message handlers
  34. BOOL CHardwareInfoDlg::OnInitDialog() 
  35. {
  36. CDialog::OnInitDialog();
  37. CString DisplayString;
  38. SYSTEM_INFO SystemInfo;
  39. //检测CPU的类型
  40. ::GetSystemInfo(&SystemInfo); //WinAPI函数,用以取得系统信息
  41. if(SystemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
  42. {
  43. switch (SystemInfo.wProcessorLevel)
  44. {
  45. //本程序只演示取得Intel系列CPU的方法
  46. //  ……
  47. //省略对386及486机器的检测
  48. case 5:
  49. DisplayString = "Pentium";
  50. break;
  51. case 6:
  52. DisplayString = "Pentium (II/Pro)";
  53. break;
  54. }
  55. }
  56. m_CpuType.SetWindowText(DisplayString); //变量m_CpuType是一个CStatic框
  57. //检测内存状态
  58. MEMORYSTATUS MemoryStatus; //内存的现行状态结构
  59. MemoryStatus.dwLength = sizeof(MEMORYSTATUS); //填充结构的大小
  60. ::GlobalMemoryStatus(&MemoryStatus); //取得内存的状态
  61. char buffer[20];
  62. wsprintf(buffer,"%d bytes",MemoryStatus.dwTotalPhys);//dwTotalPhys指示物理内存字节
  63. m_Memory.SetWindowText(buffer); //变量m_Memory是一个CStatic框
  64. return TRUE;  // return TRUE unless you set the focus to a control
  65.               // EXCEPTION: OCX Property Pages should return FALSE
  66. }