用VC判断软件使用的操作系统
2008-12-07 11:34
162 查看
在开发软件时,由于在不同的操作系统中实现技术上的区别,可能某一软件的功能仅局限于单一的操作系统环境,例如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;
至此,操作系统判断功能已经实现,在软件启动时会自动判断软件当前运行的操作系统并提示用户是否在正确的操作系统环境,从而保证了软件运行的正常性。
我们需要编写一段小程序用于在软件启动时来判断当前软件所运行的环境到底是哪个操作系统,并当用户在错误的环境中运行软件时给予报警。本文将详细介绍实现的方法及过
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;
至此,操作系统判断功能已经实现,在软件启动时会自动判断软件当前运行的操作系统并提示用户是否在正确的操作系统环境,从而保证了软件运行的正常性。
相关文章推荐
- 关于xp操作系统下使用VC6++编写的上位机软件在win10中运行的问题
- H5案例分享:使用JS判断客户端、浏览器、操作系统类型
- VC判断操作系统为Win7的最简单代码!
- 使用AppFace For VC 0.2给软件更换皮肤
- NSIS:使用WinVer.nsh头文件判断操作系统版本
- 64位操作系统下使用YUM下只安装纯净64位软件包的设定
- VC++如何判断当前操作系统是32位还是64位
- 判断用户是否第一次使用软件版本
- VC++如何判断当前操作系统是32位还是64位?
- 如何在无图形界面的操作系统上使用图形界面软件如sublime text,以及显示图形?
- 使用VC编写ocx控件,通过读注册表项获取客户端软件版本号
- cmd判断操作系统及创建快捷方式,安装包使用
- 开发环境操作系统镜像文件与软件说明-win7-64bit--请下载后使用u盘镜像安装
- 软件crash后生成dmp,可用VC编译器和Windbg查看 简单使用问题
- 使用JS判断客户端、浏览器、操作系统类型
- IOS开发判断是否第一次使用软件且下次app自动更新后再次打开还是第一次使用
- 使用Java判断操作系统
- Windows 64操作系统安装使用PL/SQL软件查询
- VC++如何判断当前操作系统是32位还是64位?
- cmd判断操作系统及创建快捷方式,安装包使用