问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本信息是Windows8.1以上的版本后,你就无法区分它到底是Win8.1还是Win10.

问题二:使用GetVersionEx这个API配合结构体OSVERSIONINFOEX这个方法获取版本信息,那么Win8以上的系统不论是Win8.1还是Win10都会被判定为主版本号为6,次版本号为2(即Win8的版本号)。

参考:

http://blog.csdn.net/pjl1119/article/details/8556693

和MSDN相关API说明。

那么如何区分Win8.1和Win10?

使用如下未文档化API:

RtlGetNtVersionNumbers

参考:

http://blog.csdn.net/magictong/article/details/40753519

使用方法如下:

int main()
{
HMODULE hm;
if (hm = LoadLibrary("ntdll.dll"))
{
DWORD i = , j = , p = ;
typedef void (WINAPI *getver)(DWORD*, DWORD*, DWORD*);
getver gv;
gv = (getver)GetProcAddress(hm, "RtlGetNtVersionNumbers");
if (gv)
{
gv(&i, &j, &p);
printf("Major is %d\nMinor is %d\nOptional Build is %d\n", i, j, p); } FreeLibrary(hm);
}
system("pause");
return ;
}

Windows7下返回结果:

aaarticlea/png;base64,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" alt="" />

Windows8.1下返回结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQEAAAA9CAIAAAAiQUvIAAAEJElEQVR4nO2cS3qcMBCEuaaPkKvlFFpmkcP4CFn4s8NI6lK1HqCh6/9YYI2ofqAagyE5Pv/80qYt8nbcnoE2bfdu/z3w9/eHNm0BtxcPHEIE5OyBlFJK6eej7EeMa7KXKeLpmwkJiSdReuBrlXhXzOYe0OoXJlUPnLk7wQk8phCxBNIDwBXVj/DgQa9LK67LpfKAQFTvB8AytdZTaZjq/MwD5NK0REA+5eGuiCIQ5D1xcxm5PAA8VqWc6VrNXs+IWDAeYNaQywPeJJmg5OHygMh5Rw9417Q8IBDea6GD80Y6gQcxqaBPqiO0iMLIc2J9v4onMPiuhL5fxduj94VEdFzvC931fT8eV7+vhInrfaE39YDuWwQiwvtCZx5ZlBhi5H0h4BY8/6DXokufQR4QOa73haprmt8//+hawWRcRkQGEDkj98TdHrA8ZtHMhEc2EDm3eMCbpHVUh5o8IHLe0QNAv3m4PCBy+t6dTnpfSDwGPScW0ZEHRHTkARGd0gMTr5vXXX+7ru+tmwryQD7uuP4sQJ7V8WZzso+q80GfvfOtPJeQeeAnKh8eTFtdgyvJZNy+d+jza6VPfxBQbDVisznZcmT2Gf1ZbRxl8P+ZuzTXgeh9HuiIe29DyhxG1uh55EoPXN1D178nrvai7NFRaxwYt0SATpZhk2rrwfnwxgUlgHy89XYAaiyDlnOs8Sn6fHvX4no+gPdLJgpWx/lmpVfIuGQyfEPm6qQaTX0w05vPFH1+fBWbewC3g+9RNUSzEEufrMuVVcfhI+KgIdm4dQpwqoy+K7eF7OyBZiC+QeCUdOiTdbmyYsZ5muV4TygouZmAV7+7n52QfxdqpsisIe85aPaCb1AzZ5c+WZcrqxEdIDulzxM1Z+UzE/L5QHql+hGYn5WUzQc1nydbOs02gcle/eZ4WYIrJbKiPnGgj+Nmn07U78tnMuRz4ouyEeJ6GA9cakohLkbvC4no4H9Tf3d2awlSJk/Qblh/FzpidOSCGnfrIcgnwhmvIA8srXG3Hu6WzxYwHjhfM2RNtC6cvOMW1fnplXJ+uY/1rf1B/VSA6yKlmuNMUCYfPLnaBG9dW1D1ACj7/JHVC+8+A6njDeGqZUSfqYURGewzDkcW2xF3a8DvgTPpm6NYN2ey+ZYOn15VnzzHTCyQfLMuXh8MdosAHbI/zUBefdC3rXF5gBlkJpANGjzHruVFHtitP10E6JD9aQby6jO17MgsD6zoV59OOoH1LakV+lf2AehX86kGmhu3WR05ecl86/lAVcXqGn8IkGoWUO4cdq+ZEFkm5T4Q6SuhHPSKMDq4P00dps94Gl+Xlc+l8x/5nNjVow31xaU8yQMdX0Jb6Yt7eJIHhOhBHhDRkQdEdOQBER15QERHHhDRkQdEdOQBER15QERHHhDB+QdfEGVmvdevRgAAAABJRU5ErkJggg==" alt="" />

Windows10下返回结果:

aaarticlea/png;base64,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" alt="" />

这样我们即使不是用WindowsSDK10,也能区分开Win8.1和Win10了。

其他方法:

http://blog.csdn.net/k1988/article/details/47614529

其中这篇文章分析了很多方法:

http://blog.csdn.net/magictong/article/details/40753519

利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号的更多相关文章

  1. 利用未文档化API:RtlAdjustPrivilege 提权实现自动关机

    这里主要是利用NTDLL.dll中未文档化的API: RtlAdjustPrivilege 来实现提权.自动关机的功能. RtlAdjustPrivilege定义如下: NTSTATUS RtlAdj ...

  2. NTDLL未文档化函数RtlGetNtVersionNumbers获取操作系统版本

    作为新手,对获取操作系统版本号好奇过,因为曾经假象过一个场景:自己的程序在windows xp环境下编译,在windows 2003, windows 7,windows 8是否需要提权或者兼容处理, ...

  3. 使用 Swagger 文档化和定义 RESTful API

    大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API——REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...

  4. 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在日常开发中,我们需要给前端提供文档化的API接口定义,甚至需要模拟架设一个fake服务用来调试接口字段.或者对于后端开发人员 ...

  5. 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

    在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...

  6. Effective Java 第三版——74. 文档化每个方法抛出的所有异常

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  7. sphinx-python文档化

    概述 下文讲述使用sphinx自动生成reStructuredText python API文档的简单过程. 配置流程 安装依赖 $ pip install sphinx blurb python-d ...

  8. 在线文档转换API word,excel,ppt等在线文件转pdf、png

    在线文档转换API提供word,excel,ppt等在线文件转pdf.png等,文档:https://www.juhe.cn/docs/api/id/259 接口地址:http://v.juhe.cn ...

  9. tbls ci 友好的数据库文档化工具

    tbls 是用golang 编写的数据库文档化工具,当前支持的数据库有pg.mysql.bigquery 此工具同时提供了变更对比.lint 校验,生成是markdown格式的 简单使用 安装 mac ...

随机推荐

  1. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

  2. asp 操作 json

    <% Dim sc4Json Sub InitScriptControl Set sc4Json =Server.CreateObject("MSScriptControl.Scrip ...

  3. Urbanization

    Urbanization time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  4. 十八、oracle 角色

    一.介绍角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理.假定有用户a,b,c为了让他们都拥有如下权限1. 连接数据库2. 在scott.emp表上select,insert,up ...

  5. mysql编码设置 [http://blog.knowsky.com/254652.htm]

    MYSQL 2009-09-11 15:37 阅读73 评论1 字号: 大大 中中 小小mysql> SHOW VARIABLES LIKE 'character_set_%';+------- ...

  6. 感知哈希算法的java实现

    一.原理讲解      实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格式), 两张图片的指纹 ...

  7. 《JS权威指南学习总结--第二章词法结构》

    第二章词法结构 内容要点: 一.注释 1. //表示单行注释 2. /*这里是一段注释*/ 3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/ 二.直接量 所谓直接量,就是程序中直接使用的 ...

  8. hdu_5754_Life Winner Bo(博弈)

    题目链接:hdu_5754_Life Winner Bo 题意: 一个棋盘,有国王,车,马,皇后四种棋子,bo先手,都最优策略,问你赢的人,如果双方都不能赢就输出D 题解: 全部都可以直接推公式, 这 ...

  9. 期刊:DOI :10.3969/j.issn.1001-2400.2012.01.008

    DOI:10.3969/j.issn.1001-2400.2012.01.008 “/” 分为前缀和后缀两部分中间用一斜杠分开,前缀中又以小圆点分为两部分. "DOI":一篇期刊论 ...

  10. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;方法意思

    这个方法是用来设置你的TableView中每一行显示的内容和格式的. indexPath 用来指示当前单元格,它的row方法可以获得这个单元格的行号,section方法可以获得这个单元格所处的区域号 ...