我们所编写的每一个程序,都会有一个运行环境的最低需求。如何获取用户机器的配置信息呢?其实,我们可以利用API函数轻松实现。我们利用VisualC++向导生成一个单文档界面的窗口程序框架。生成一个新的对话框,这个对话框用于显示我们所取得的机器的配置信息。为这个对话框生成一个新类,命名为CSystemInfoDialog类。修改这个类的主要代码如下://对话框的初始化函数BOOLCSystemInfoDialog::OnInitDialog(){CStringDisplayString;SYSTEM_INFOSystemInfo;//检测CPU的类型::GetSystemInfo(&SystemInfo);//WinAPI函数,用以取得系统信息if(SystemInfo.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_INTEL){switch(SystemInfo.wProcessorLevel){//本程序只演示取得Intel系列CPU的方法……//省略对386及486机器的检测case5:DisplayString=Pentium;break;case6:DisplayString=Pentium(II/Pro);break;}}m_CpuType.SetWindowText(DisplayString);//变量m_CpuType是一个CStatic框//检测内存状态MEMORYSTATUSMemoryStatus;//内存的现行状态结构MemoryStatus.dwLength=sizeof(MEMORYSTATUS);//填充结构的大小::GlobalMemoryStatus(&MemoryStatus);//取得内存的状态charbuffer[20];wsprintf(buffer,%dbytes,MemoryStatus.dwTotalPhys);//dwTotalPhys指示物理内存字节m_Memory.SetWindowText(buffer);//变量m_Memory是一个CStatic框//检测操作系统版本OSVERSIONINFOversionInfo;//操作系统版本信息结构versionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);::GetVersionEx(&versionInfo);//取得当前操作系统信息if(versionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT){//如果操作系统是WindowsNT……//本文略过对NT系统的检测操作}elseif(versionInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS){//如果操作系统是Windows9X系统DisplayString=Windows95;if((versionInfo.dwMajorVersion=4)&&(versionInfo.dwMinorVersion0)){//版本4.1以上系统为Windows98系列DisplayString=Windows98;charVersionBuffer[20];//取得操作系统的版本号wsprintf(VersionBuffer,%d.%d,versionInfo.dwMajorVersion,versionInfo.dwMinorVersion);m_Version.SetWindowText(VersionBuffer);//在对话框上显示版本信息}}m_System.SetWindowText(DisplayString);//在对话框上显示操作系统类//检测鼠标intMouseInstall=::GetSystemMetrics(SM_MOUSEPRESENT);if(MouseInstall!=0)m_Mouse.SetWindowText(有);intcx,cy;//取得当前显示分辨率cx=::GetSystemMetrics(SM_CXSCREEN);//水平分辨率cy=::GetSystemMetrics(SM_CYSCREEN);//垂直分辨率charDisplay[20];wsprintf(Display,%d%d,cx,cy);m_Display.SetWindowText(Display);//在对话框上显示分辨率信息//取得当前系统的颜色设置CDC*DC=this-GetDC();intnColors=DC-GetDeviceCaps(NUMCOLORS);if(nColors!=-1)wsprintf(Display,%d色,nColors);elsewsprintf(Display,高彩或真彩);m_ColorDeep.SetWindowText(Display);//取得系统时间SYSTEMTIMESystemTime;::GetSystemTime(&&SystemTime);wsprintf(Display,%d-%d-%d,SystemTime.wMonth,SystemTime.wDay,SystemTime.wYear);m_SystemDate.SetWindowText(Display);//取得Windows系统的路径::GetWindowsDirectory(Display,20);m_SystemPath.SetWindowText(Display);returnTRUE;}当我们要显示系统的配置情况,只需调用这个类的DoModal()函数将对话框显示出来就行了。