#include "stdafx.h"
#include "WinVer.h"
CWinVer::CWinVer()
{
IsWinNT=false;
IsWinNT6=false;
IsWinVista=false;
IsWin2008=false;
IsWin7=false;
IsWin8=false;
IsWinNT5=false;
IsWin2K=false;
IsWinServer=false;
IsWinXP=false;
IsWin2003=false;
IsWinHomeServer=false;
IsWinMediaCenter=false;
IsWin64bit=false;
IsWin9x=false;
IsWin95=false;
IsWin98SE=false;
IsWin98=false;
IsWin98ME=false;
IsWinNT3=false;
IsWinNT4=false;
IsWin32s=false;
}
CWinVer::~CWinVer()
{
}
string CWinVer::InfoVersion64bit()
{
SYSTEM_INFO Si;
string strTemp;
GetNativeSystemInfo(&Si);
if(Si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
{
strTemp=" 64bits";
IsWin64bit=true;
}
else
{
strTemp=" 32bits";
IsWin64bit=false;
}
return strTemp;
}
string CWinVer::InfoVersionMediaCenter()
{
string strTemp="";
if(GetSystemMetrics(SM_MEDIACENTER)!=0)
{
IsWinMediaCenter = true;
strTemp = " Media Center";
}
return strTemp;
}
string CWinVer::InfoVersionWinEx()
{
OSVERSIONINFOEX OSinfo;
strWindowsVersion="";
SYSTEM_INFO SysInfo;
long RetValue;
DWORD RetProdType;
OSinfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);
RetValue=GetVersionEx((LPOSVERSIONINFO)&OSinfo);
if(1)
{
IsWinNT=true;
switch(OSinfo.dwMajorVersion)
{
case 6:
IsWinNT6=true;
switch(OSinfo.dwMinorVersion)
{
case 0:
if(OSinfo.wProductType == VER_NT_WORKSTATION)
{
IsWinVista=true;
strWindowsVersion="Windows Vista";
}
else
{
IsWin2008=true;
strWindowsVersion="Windows Server 2008";
}
break;
case 1:
{
IsWin7=true;
if(OSinfo.dwBuildNumber==6801)
{
strWindowsVersion="Windows 7 preBeta build M3 PDC 2008";
}
else
{
strWindowsVersion="Windows 7";
}
}
break;
case 2:
IsWin8=true;
if(OSinfo.dwBuildNumber==7867)
strWindowsVersion="Windows 8 Milestone1";
else if(OSinfo.dwBuildNumber<=7947&&OSinfo.dwBuildNumber>=7910)
strWindowsVersion="Windows 8 Milestone2";
else if(OSinfo.dwBuildNumber==7955)
strWindowsVersion="Windows 8 Milestone3";
else
strWindowsVersion="Windows 8";
break;
default:
char temp[10];
strWindowsVersion="Windows NT v";
_itoa_s(OSinfo.dwMajorVersion,temp,sizeof(temp),10);
strWindowsVersion.append(temp);
//strWindowsVersion.append("Windows NT v%d",OSinfo.dwMajorVersion);
break;
}
strWindowsVersion += InfoVersion64bit();
GetProductInfo(OSinfo.dwMajorVersion, OSinfo.dwMinorVersion, OSinfo.wServicePackMajor, OSinfo.wServicePackMinor, (PDWORD)&RetProdType);
switch(RetProdType)
{
case PRODUCT_BUSINESS:
strWindowsVersion+=" Business";
break;
case PRODUCT_BUSINESS_N:
strWindowsVersion+=" Business N";
break;
case PRODUCT_CLUSTER_SERVER:
strWindowsVersion+=" HPC";
break;
case PRODUCT_DATACENTER_SERVER:
strWindowsVersion+=" Datacenter";
break;
case PRODUCT_DATACENTER_SERVER_CORE:
strWindowsVersion +=" Datacenter (core installation)";
break;
case PRODUCT_DATACENTER_SERVER_CORE_V:
strWindowsVersion +=" Datacenter sans Hyper-V(core installation)";
break;
case PRODUCT_DATACENTER_SERVER_V:
strWindowsVersion += " Datacenter sans Hyper-V";
break;
case PRODUCT_ENTERPRISE:
strWindowsVersion += " Enterprise";
break;
case PRODUCT_ENTERPRISE_N:
strWindowsVersion += " Enterprise N";
break;
case PRODUCT_ENTERPRISE_SERVER:
strWindowsVersion += " Server Enterprise";
break;
case PRODUCT_ENTERPRISE_SERVER_CORE:
strWindowsVersion += " Server Enterprise (core installation)";
break;
case PRODUCT_ENTERPRISE_SERVER_CORE_V:
strWindowsVersion += " Server Enterprise sans Hyper-V(core installation)";
break;
case PRODUCT_ENTERPRISE_SERVER_IA64:
strWindowsVersion += " Enterprise pour Itanium";
break;
case PRODUCT_ENTERPRISE_SERVER_V:
strWindowsVersion += " Server Enterprise sans Hyper-V";
break;
case PRODUCT_HOME_BASIC:
strWindowsVersion += " Home Basic";
break;
case PRODUCT_HOME_BASIC_N:
strWindowsVersion += " Home Basic N";
break;
case PRODUCT_HOME_PREMIUM:
strWindowsVersion += " Home Premium";
break;
case PRODUCT_HOME_PREMIUM_N:
strWindowsVersion += " Home Premium N";
break;
case PRODUCT_HYPERV:
strWindowsVersion += " Microsoft Hyper-V Server";
break;
case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT:
strWindowsVersion += " Essential Business Server Management Server";
break;
case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING:
strWindowsVersion += " Essential Business Server Messaging Server";
break;
case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY:
strWindowsVersion += " Essential Business Server Security Server";
break;
case PRODUCT_SERVER_FOR_SMALLBUSINESS:
strWindowsVersion += " Windows Essential Server Solutions";
break;
case PRODUCT_SERVER_FOR_SMALLBUSINESS_V:
strWindowsVersion += " Windows Essential Server Solutions sans Hyper-V";
break;
case PRODUCT_SMALLBUSINESS_SERVER:
strWindowsVersion += " Small Business Server";
break;
case PRODUCT_STANDARD_SERVER:
strWindowsVersion += " Standard";
break;
case PRODUCT_STANDARD_SERVER_CORE:
strWindowsVersion += " Standard (core installation)";
break;
case PRODUCT_STANDARD_SERVER_CORE_V:
strWindowsVersion += " Standard sans Hyper-V(core installation)";
break;
case PRODUCT_STANDARD_SERVER_V:
strWindowsVersion += " Standard sans Hyper-V";
break;
case PRODUCT_STARTER:
strWindowsVersion += " Starter";
break;
case PRODUCT_STORAGE_ENTERPRISE_SERVER:
strWindowsVersion += " Storage Server Enterprise";
break;
case PRODUCT_STORAGE_EXPRESS_SERVER:
strWindowsVersion += " Storage Server Express";
break;
case PRODUCT_STORAGE_STANDARD_SERVER:
strWindo
C++获取Windows系统版本,支持从Win95到Win8
5星 · 超过95%的资源 需积分: 50 73 浏览量
2011-12-22
14:18:47
上传
评论 3
收藏 89KB RAR 举报
ixSoleil
- 粉丝: 1
- 资源: 3
最新资源
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页