中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
利用API函数获取系统信息
作者:未知 时间:2005-09-13 23:35 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:利用API函数获取系统信息
我们所编写的每一个程序,都会有一个运行环境的最低需求。如何获取用户机器的配置信息呢?其实,我们可以利用API函数轻松实现。

我们所编写的每一个程序,都会有一个运行环境的最低需求。如何获取用户机器的配置信息呢?其实,我们可以利用API函数轻松实现。

  我们利用Visual C++向导生成一个单文档界面的窗口程序框架。生成一个新的对话框,这个对话框用于显示我们所取得的机器的配置信息。为这个对话框生成一个新类,命名为CSystemInfoDialog类。修改这个类的主要代码如下:

  BOOL CSystemInfoDialog::OnInitDialog()

  //对话框的初始化函数

  { CString DisplayString;

   SYSTEM_INFO SystemInfo;

  //检测CPU的类型

   ::GetSystemInfo(&&SystemInfo);

  //WinAPI函数,用以取得系统信息

  if (SystemInfo.wProcessorArchitecture = =

  PROCESSOR_ARCHITECTURE_INTEL)

  { switch (SystemInfo.wProcessorLevel) {

  //本程序只演示取得Intel系列CPU的方法

  ……

  //省略对386及486机器的检测

  case 5:

  DisplayString= "Pentium";

  break;

  case 6:

  DisplayString ="Pentium (II/Pro)";

  break; }

   }

   m_CpuType.SetWindowText(DisplayString);

  //变量m_CpuType是一个CStatic框

  //检测内存状态

   MEMORYSTATUS MemoryStatus;

  //内存的现行状态结构

   MemoryStatus.dwLength=sizeof(MEMORYSTATUS);

  //填充结构的大小

   ::GlobalMemoryStatus(&&MemoryStatus);

  //取得内存的状态

   char buffer[20];

   wsprintf(buffer,"%d bytes",MemoryStatus.dwTotalPhys);

  //dwTotalPhys指示物理内存字节

   m_Memory.SetWindowText(buffer);

  //变量m_Memory是一个CStatic框

  //检测操作系统版本

   OSVERSIONINFO versionInfo;

   //操作系统版本信息结构

   versionInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);

   ::GetVersionEx (&&versionInfo);

  //取得当前操作系统信息

   if (versionInfo.dwPlatformId = =

   VER_PLATFORM_WIN32_NT)

   {

  //如果操作系统是Windows NT

  ……

  //本文略过对NT系统的检测操作

   }

   else if (versionInfo.dwPlatformId = =

  VER_PLATFORM_WIN32_WINDOWS)

   {

  //如果操作系统是Windows 9X系统

  DisplayString="Windows 95";

   if ((versionInfo.dwMajorVersion >= 4)&&&& (versionInfo.dwMinorVersion > 0))

   {

  //版本4.1以上系统为Windows98系列

  DisplayString="Windows 98";

  char VersionBuffer[20];

  //取得操作系统的版本号

  wsprintf(VersionBuffer,"%d.%d",versionInfo.dwMajorVersion,versionInfo.dwMinorVersion);

  m_Version.SetWindowText(VersionBuffer);

  //在对话框上显示版本信息

   }

   }

   m_System.SetWindowText(DisplayString);

  //在对话框上显示操作系统类

  //检测鼠标

   int MouseInstall=::GetSystemMetrics(SM_MOUSEPRESENT);

   if(MouseInstall!=0)

   m_Mouse.SetWindowText("有");

   int cx,cy;

  //取得当前显示分辨率

   cx=::GetSystemMetrics(SM_CXSCREEN);

  //水平分辨率

   cy=::GetSystemMetrics(SM_CYSCREEN);

  //垂直分辨率

   char Display[20];

   wsprintf(Display,"%d  %d",cx,cy);

  m_Display.SetWindowText(Display);

  //在对话框上显示分辨率信息

  //取得当前系统的颜色设置

  CDC DC=this->GetDC();

  int nColors=DC->GetDeviceCaps(NUMCOLORS);

  if(nColors!=-1)

  wsprintf(Display,"%d 色",nColors);

  else wsprintf(Display,"高彩或真彩");

  m_ColorDeep.SetWindowText(Display);

  //取得系统时间

  SYSTEMTIME SystemTime;

  ::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);

  return TRUE;

  }

  当我们要显示系统的配置情况,只需调用这个类的DoModal()函数将对话框显示出来就行了。

  本程序在Windows 98,Visual C++ 6.0环境下编译通过。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有