#include <windows.h>
#include <tchar.h>
#include <strsafe.h>
#include <iostream>
using namespace std;
int _tmain(int argc,TCHAR * argv[])
{
OSVERSIONINFOEX osVersionInfoEx;
//ZeroMemory(&osVersionInfoEx,sizeof(osVersionInfoEx));
osVersionInfoEx.dwOSVersionInfoSize=sizeof(osVersionInfoEx); //注意空间,这句会申请一个存放结构体信息的空间,如果没有这句,结果当然没有.
if(! GetVersionEx((LPOSVERSIONINFO)&osVersionInfoEx))
cerr<<"GetVersionEx(LPOSVERSIONINFO osVersionInfoEx) return FALSE"<<endl;
else
{
cout<<osVersionInfoEx.dwOSVersionInfoSize<<endl; //结构体size
cout<<osVersionInfoEx.dwMajorVersion<<endl; //主版本
cout<<osVersionInfoEx.dwMinorVersion<<endl; //次版本
cout<<osVersionInfoEx.dwBuildNumber<<endl; //当前系统的构建版本号
cout<<osVersionInfoEx.dwPlatformId<<endl; //当前系统平台(支持的套件)
cout<<osVersionInfoEx.szCSDVersion<<endl;
cout<<osVersionInfoEx.wServicePackMajor<<endl; //SP(x)
cout<<osVersionInfoEx.wServicePackMinor<<endl; //SP(x)
cout<<osVersionInfoEx.wSuiteMask<<endl;
//cout<<osVersionInfoEx.wProductType<<endl;
//cout<<osVersionInfoEx.wReserved<<endl;
cout<<"Your system is : ";
switch(osVersionInfoEx.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT:
if(osVersionInfoEx.dwMajorVersion==6 && osVersionInfoEx.dwMinorVersion==0)
cout<<"Windows Vista"<<endl;
else if(osVersionInfoEx.dwMajorVersion==5 && osVersionInfoEx.dwMinorVersion==0)
cout<<"Windows 2000"<<endl;
else if(osVersionInfoEx.dwMajorVersion==5 && osVersionInfoEx.dwMinorVersion==1)
cout<<"Windows XP"<<endl;
else if(osVersionInfoEx.dwMajorVersion==4 && osVersionInfoEx.dwMinorVersion==0)
cout<<"Windows NT"<<endl;
break;
case VER_PLATFORM_WIN32_WINDOWS:
if(osVersionInfoEx.dwMajorVersion==4 && osVersionInfoEx.dwMinorVersion==10)
cout<<"Windows 98"<<endl;
else if(osVersionInfoEx.dwMajorVersion==4 && osVersionInfoEx.dwMinorVersion==90)
cout<<"Windows ME"<<endl;
else
cout<<"Windows 95"<<endl;
break;
default:
break;
}
}
return 0;
}