问题一: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. iOS动画编程

    IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation& ...

  2. js 中创建对象

    对象是什么 从JavaScript定义上讲对象是无序属性的集合,其属性可以包含基本值.对象或函数.也就是说对象是一组没有特定顺序的属性,每个属性会映射到一个值上,是一组键值对,值可以是数据或对象. 最 ...

  3. Linux下gcc编译生成动态链接库*.so文件并调用它【转载】

    动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...

  4. Python中exec的使用

    >>>globals = {'x':7, .....: 'y':10, .....: 'names':['aa','bb','cc'] .....: } >>>lo ...

  5. Python2中while 1比while True更快

    1) bool类是从int类继承而来的 2) True/False 在python2中不是关键字,但是在python3是(True,False,None) PS > python2 Enthou ...

  6. 观看网上的N多教程有感

    MD只想说一句,我擦. 长篇大论,有个叼毛用呀,显示你文采.... 糟粕真TMD多,直接简单的步骤多好,不要显示的你有多专业,其实就是一个二逼. 还有N多论坛,扯淡的人更多.

  7. TD缺陷通过excel导入QC11.0缺陷库

    在将TD升级到QC之前,参考了各种升级的方式,但是最终发现用excel导入缺陷到QC库是最简单方便的方法,实施步骤如下:1,首先登陆TD,将缺陷的所有信息显示在界面,然后使用缺陷工具将页面所有缺陷保存 ...

  8. petstore-jdbc

    拖了好多天,终于决定开始写作业了,搞了大半天的把软件安好. jdk(安装与环境配置) Tomcat(安装与环境配置) mysql(安装,同时配置图形化操作界面) eclipse for Javaee ...

  9. 通过配置的方式Autofac(1)

    一.基本配置 1.通过配置的方式使用Autofac <?xml version="1.0"?> <configuration> <configSect ...

  10. Heartbeat+DRBD+MySQL高可用方案【转】

    转自Heartbeat+DRBD+MySQL高可用方案 - yayun - 博客园 http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用 ...