• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用VC判断软件使用的操作系统

发布: 2007-7-14 21:11 | 作者: 佚名    | 来源: 网络转载     | 查看: 69次 | 进入软件测试论坛讨论

领测软件测试网 杜建蔚

  在开发软件时,由于在不同的操作系统中实现技术上的区别,可能某一软件的功能仅局限于单一的操作系统环境,例如Windows98或是WindowsNT,为此,我们需要在用户使用软件时给予相应提示。

  我们需要编写一段小程序用于在软件启动时来判断当前软件所运行的环境到底是哪个操作系统,并当用户在错误的环境中运行软件时给予报警。本文将详细介绍实现的方法及过  
程。

  OSVERSIONINFO结构

  OSVERSIONINFO结构包含了操作系统的版本信息,包括操作系统的主版本号、副版本号、创建号、以及操作系统平台ID号和关于操作系统的其他描述信息。其定义为:

  typedef struct _OSVERSIONINFO{

  DWORD dwOSVersionInfoSize;

  //指定该数据结构的字节大小

  DWORD dwMajorVersion;

  //操作系统的主版本号

  DWORD dwMinorVersion;

  //操作系统的副版本号

  DWORD dwBuildNumber;

  //操作系统的创建号

  DWORD dwPlatformId;

  //操作系统ID号

  TCHAR szCSDVersion[ 128 ];

  //关于操作系统的一些附加信息

  } OSVERSIONINFO;

  其中dwPlatformId可为以下值:

  VER_PLATFORM_WIN32s:标识为Windows 3.1;

  VER_PLATFORM_WIN32_WINDOWS:标识为Windows 95或Windows 98;

  对于Windows 95操作系统而言,dwMinorVersion值为0,对Windows 98操作系统dwMinorVersion则大于0;

  VER_PLATFORM_WIN32_NT:标识为WindowsNT。

  程序具体实现步骤

  1.使用AppWizard新建一个基于单文档的工程SystemJudge。

  2.在工程中添加两个文件,即定义文件judge.h和实现文件judge.cpp。

  在judge.h文件中添加如下代码:

  #ifndef __JUDGE_H__

  #define __ JUDGE _H__

  Cstring JudgeOperatingSystem();

  //判断操作系统函数定义

  #endif

  在judge.cpp文件中添加如下代码:

  #include "stdafx.h"

  #include "judge.h"

  Cstring JudgeOperatingSystem()

  //判断操作系统函数的实现

  {

  OSVERSIONINFO OsVersionInfo;

  OsVersionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

  GetVersionEx(&&OsVersionInfo);

  if(OsVersionInfo.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS )

   {

   if(OsVersionInfo.dwMajorVersion>4) return "Windows98";

  else if(OsVersionInfo.dwMajorVersion=4)

   {

   if(OsVersionInfo.dwMinorVersion>0) return "Windows98";

  else return "Windows95";

   }

   else return "Windows3.1";

   }

  elseif(OsVersionInfo.dwPlatformId= VER_PLATFORM_WIN32_NT )

   {

   return "WindowsNT";

   }

   else if(OsVersionInfo.dwPlatformId== VER_PLATFORM_WIN32s)

   {

   return "Windows3.1";

   }

   else return "NoName";

  }

  3.在CmainFrame类的实现文件MainFrm.cpp中开头添加#include"judge.h"。并在其OnCreate函数中return语句前加入如下判断代码:

  Cstring sOperatingSystem = JudgeOperatingSystem();

  if( sOperatingSystem == "Windows98")

  {

  //假如本软件需要在WindowsNT下运行

  MessageBox(

   "本软件在WindowsNT4.0或更高的版本下运行,您的操作系统是Windows98 "

  "请安装WindowsNT4.0以上的版本或使用Windows98版!",

  "警告",

  MB_OK

  );

  }

   else if( sOperatingSystem == "WindowsNT")

   {

   //假如软件需要在Windows98下运行,我们可在此添加警告对话框

   }

   else return -1;

  至此,操作系统判断功能已经实现,在软件启动时会自动判断软件当前运行的操作系统并提示用户是否在正确的操作系统环境,从而保证了软件运行的正常性。

  本程序在VC++ 6.0,Windows 98下调试通过。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网