windows如何获取Win10 Win8 Win8.1版本
GetVersionEx 在win8 win8.1 win10 之后已经无法使用,如果非要使用的话需要让exe嵌入manifest,mainfest如下。这个文件需要已utf-8存储。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>
或者使用高版本windows库函数
这里我使用了其他的函数来获取
typedef LONG (WINAPI *pfnRtlGetVersion)(RTL_OSVERSIONINFOEXW*);
bool MyGetVersionEx(RTL_OSVERSIONINFOEXW &osverinfo)
{
osverinfo.dwOSVersionInfoSize = sizeof(osverinfo);
HMODULE hmodule=LoadLibrary(L"ntdll.dll");
pfnRtlGetVersion Rtl = (pfnRtlGetVersion)GetProcAddress(hmodule,"RtlGetVersion");
if (Rtl)
{
if(!Rtl(&osverinfo))
{
FreeLibrary(hmodule);
return true;
}
else
{
FreeLibrary(hmodule);
return false;
}
}
else
{
FreeLibrary(hmodule);
return false;
}
}
bool GetOSName(string &strOsName,bool &bX86)
{
SYSTEM_INFO info; //用SYSTEM_INFO结构判断64位AMD处理器
GetSystemInfo(&info); //调用GetSystemInfo函数填充结构 RTL_OSVERSIONINFOEXW osInfo= {};
if(MyGetVersionEx(osInfo))
{
char osName[] = "UNKNOWN"; if (GetSystemBits()==)
{
bX86=false;
}
else
{
bX86=true;
}
switch(osInfo.dwPlatformId)
{
case VER_PLATFORM_WIN32_WINDOWS:
{
switch(osInfo.dwMinorVersion)
{
case :
{
strcpy(osName,"Windows 95");
break;
} case :
{
strcpy(osName,"Windows 98");
break;
} case :
{
strcpy(osName,"Windows Me");
break;
}
}
break;
} case VER_PLATFORM_WIN32_NT:
{
switch(osInfo.dwMajorVersion)
{
case :
{
strcpy(osName,"Windows NT 3.51");
break;
} case :
{
strcpy(osName,"Windows NT 4.0");
break;
} case :
{
if(osInfo.dwMinorVersion == )
{
strcpy(osName,"Windows 2000");
}
else if(osInfo.dwMinorVersion == )
{
if(osInfo.wSuiteMask & VER_SUITE_EMBEDDEDNT)
{
strcpy(osName,"Windows XP Embedded");
}
else
{
strcpy(osName,"Windows XP");
}
}
else if(osInfo.dwMinorVersion == )
{
if(osInfo.wProductType==VER_NT_WORKSTATION && info.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
{
strcpy(osName,"Windows XP Pro x64 Edition");
}
else if( GetSystemMetrics(SM_SERVERR2) == )
{
strcpy(osName,"Windows Server 2003");
}
else if( GetSystemMetrics(SM_SERVERR2) != )
{
strcpy(osName,"Windows Server 2003 R2");
} }
break;
} case :
{
//printf("%d %d \n",6,osInfo.dwMinorVersion);
if(osInfo.dwMinorVersion == )
{
if( osInfo.wProductType == VER_NT_WORKSTATION )
{
strcpy(osName,"Windows Vista");
}
else
{
strcpy(osName,"Windows Server 2008");
}
}
else if(osInfo.dwMinorVersion == )
{
if( osInfo.wProductType == VER_NT_WORKSTATION )
{
strcpy(osName,"Windows 7");
}
else
{
strcpy(osName,"Windows Server 2008 R2");
}
}
else if (osInfo.dwMinorVersion == )
{
if( osInfo.wProductType == VER_NT_WORKSTATION )
{
strcpy(osName,"Windows 8");
}
else
{
strcpy(osName,"Windows Server 2012 ");
}
}
else if (osInfo.dwMinorVersion == )
{
if( osInfo.wProductType == VER_NT_WORKSTATION )
{
strcpy(osName,"Windows 8.1");
}
else
{
strcpy(osName,"Windows Server 2012 r2");
}
}
break;
} case :
{
if (osInfo.dwMinorVersion ==)
{
if( osInfo.wProductType == VER_NT_WORKSTATION )
{
strcpy(osName,"Windows 10");
}
}
break;
}
}
break;
}
}
string os(osName);
strOsName=os;
return true;
}
else
return false;
}
windows如何获取Win10 Win8 Win8.1版本的更多相关文章
- delphi 判断WIN8 , WIN8.1 , WIN10 系统版本
今天测试了WIN8, WIN8.1, WIN10 系统下GetVersionEx 函数,居然取出来的版本都是6.2 . 于是网上查找各种获取内核版本号的方法, 终于找到几种有用的方法, 记录下来以作备 ...
- Win8/Win8.1都有哪些版本?我该选择哪个?(二)
Windows版本分类比较复杂,下文主要为大家理清Win8/Win8.1的版本种类.如果想了解更多,可以结合<Win7/Win8/Win8.1众多版本,我该选择哪个?>一文来了解. 细数W ...
- 在线激活win10、win8/8.1和office2019、2016、2013等的kms激活工具
在线激活win10.win8/8.1和office2019.2016.2013等的kms激活工具 MicroKMS神龙版能激活win10.win8/8.1.win7以及server2008/2012/ ...
- Win7/Win8/Win8.1/Win10下的DragEnter DragDrop事件不触发
Win7/Win8/Win8.1/Win10下的DragDrop事件不触发 2011-02-02 来自:博客园 字体大小:[大 中 小] 摘要:你的应用程序需要从windows资源管理器拖动文件到 ...
- Win7/Win8/Win8.1众多版本,我该选择哪个?
当你要下载Win7或者Win8/8.1镜像时,是不是被Windows版本种类给吓着了?到底该选择哪种版本的?其实,大多数人用的就那一两个版本,这也是推荐选择的版本,请看快速通道.如果你想了解的更多一点 ...
- 详细解说Windows 8.1与Windows 8的区别(Win8.1与Win8区别)
详细解说Windows 8.1与Windows 8的区别(Win8.1与Win8区别) 本文转自“吾乐吧软件站”,原文链接:http://www.wuleba.com/?p=23082 最近,吾乐吧软 ...
- 【转】不用软件,解压Win8/Win8.1的install.wim文件
今天用好压解压Windows 8.1的install.wim文件,居然提示文件损坏,换了7Z仍然如此:其实文件是好的.只不过这些软件暂时不支持罢了,还好可以用dism命令来手动完成. 一.检查镜像版本 ...
- windows phone 获取手机图片库中图片(4)
原文:windows phone 获取手机图片库中图片(4) 前置条件:手机和电脑未连接或连接电脑Zune软件关闭(与Zune软件连接时不允许访问图片库): 版本7.1 获取手机图片库图片的两种方式: ...
- 【转】Windows下安装python2和python3双版本
[转]Windows下安装python2和python3双版本 现在大家常用的桌面操作系统有:Windows.Mac OS.ubuntu,其中Mac OS 和 ubuntu上都会自带python.这里 ...
随机推荐
- 吐槽下CSDN编辑器
Perface 近期喜欢上了markdown,我认为它就是一些HTML标签的快捷键,用一些符号来取代标签,易学易读易用,何乐而不为呢?近期也喜欢用印象笔记来让我的记忆永存,确实它强大的收集能力让我迷上 ...
- 【DFS+小操作判重】【HDU2610+HDU2611】Sequence
题意 2610 按照长度优先 位置次之 输出所有不递减序列 2611 按照长度优先 大小次之 输出所有不递减序列 题解不写了 来源于http://www.cnblogs.com/wally/archi ...
- MatLab实现FFT与功率谱
FFT和功率谱估计 用Fourier变换求取信号的功率谱---周期图法 clf; Fs=1000; N=256;Nfft=256;%数据的长度和FFT所用的数据长度 n=0:N-1;t=n/Fs;%采 ...
- asp.net mvc表单提交的几种方式
asp.net MVC中form提交和控制器接受form提交过来的数据 MVC中form提交和在控制器中怎样接受 1.cshtml页面form提交2.控制器处理表单提交数据4种方式方法1:使用传统的R ...
- iOS开发之性能优化
1.避免过于庞大的XIB 当加载XIB的时候把所有的东西都放在了内存里,包括任何的图片:如果有一个不会即刻用到的view,就会浪费宝贵的内存资源了. 当加载一个引用了图片或者声音资源的nib时,nib ...
- HTML7常用的类型刮刮乐 光棒效果
常用的类型: 1.数学: Math.ceil():天花板数 Math.floor():地板数 Math.round():四舍五入取整数 Math.random():生成0-1之间的随机数 2.日期 ...
- 解决ul显示不在div中的问题
css样式 #banner { padding: 0px; } #banner ul { list-style: none; margin: 0px; padding: 0px; text-align ...
- mudOS配置
# 本泥巴的名称name : new夕阳再现# 定义用来接受玩家连线的端口#单端口 port number : XXXX#双端口如下:external_port_1 : telnet 10010ext ...
- UIButton基础知识
基本属性 1.frame;坐标:title:titlecolor:字体颜色:titleShadowColor:字体阴影:image:图片: backgroundImage:背景图片: 2.forsta ...
- 根据群ID和用户Id查询 + string QueryQunByUserIdAndQunId(int userId, int qunId) V1.0
#region 根据群ID和用户Id查询 + string QueryQunByUserIdAndQunId(int userId, int qunId) V1.0 /// <summary ...