win10 系统下获取系统版本号为6.2的问题
近期赶时髦升级了win10,用着挺爽。但是某天在测试一个bug时发现要对win10做特殊处理,于是直接调用了GetVersionEx,并取出版本号进行判断,但是发现得到的版本竟然是6.2。当时就被雷到了,然后看了我们的其它产品中相关功能,皆获取的是6.2。
在搜索一会儿之后,发现这是微软故意做的设定,GetVersionEx函数可能在Win8.1之后会取消,推荐程序员们使用Version Helper APIs ,所以在8.1之后的系统中此函数的行为改变了,如果程序没有加上正确的manifested以表明此程序兼容新系统,则只能得到6.2这个版本号。
下面说说,需要如何添加一个正确的manifest,也可以去MSDN上直接看原始文档
首先,如果原来程序就已经设置了附加一个额外的manifest文件,则直接在原来的manifest里的assembly根节点里加一段兼容指示:
<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>
如果原来没有一个manifest文件,则可以在工程的某目录创建一个 xxx.manifest文件,里面写上以下内容,当然内容中的工程名称可以随意,并没有强制,只要确保compatibility节点的值不变就可以了:
<?xml version="1.0" encoding="UTF-8"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.5.0.0" processorArchitecture="X86" name="Microsoft.Windows.工程名称" type="win32"/> <description>工程名称</description> <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>
然后在vs工程属性里找到“清单工具->输入和输出->附加清单文件”里填入manifest文件的相对路径,然后重新链接,你的程序就可以正常的使用GetVersionEx了。但出了新系统之后,估计还是要重新改下manifest以兼容新的系统。
转载于:https://www.cnblogs.com/k1988/p/4727757.html
win10 系统下获取系统版本号为6.2的问题相关推荐
- 如何在Linux系统下更改系统语言?
如何在Linux系统下更改系统语言? 先更改系统的更新服务器,选择国内的服务器网速更好一些. 选择「System Settings」打开设置 选择「Software & Updates」 下载 ...
- Linux系统下查看系统时间和硬件时间
Linux系统下查看系统时间和硬件时间 1.具体命令使用如下: 查看当前系统时间 [root@littlelawson hbase-1.4.0]# date Mon Jun 18 10:36:45 P ...
- 游戏开发jenkins杂谈系列:windows系统下修改系统时间触发Build periodically设置的定时任务,往前调时间但不再执行定时任务的解决办法
网上搜了一堆帖子,没有讲到我遇到的这个问题的: windows系统下修改系统时间执行定时任务,例如任务在2020.11.18. 20:36分已经触发了,我将时间调回至2020.11.17 20:35, ...
- linux mysql 系统时间函数吗_linux下获取系统时间的方法
可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值. #include ...
- linux下获取系统时间的方法
可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值. #include< ...
- linux下 获取系统时间的相关函数
linux下C获取系统时间的方法 asctime(将时间和日期以字符串格式表示) 相关函数 time,ctime,gmtime,localtime 表头文件 #include 定义函数 char * ...
- 机器人底层通讯(3): linux系统下获取电子罗盘数据(上)
1.已有设备和接口 电子罗盘–1个 RS485转RS232接口–1个 RS232转USB接口-- 1个 2.在window10系统下借助串口调试器可以正常接收数据,说明电子罗盘正常: 3.查看是否已正 ...
- 2008游戏服务器系统下,Linux系统下玩经典游戏 CS1.5服务器架设
Linux系统下玩经典游戏 CS1.5服务器架设 (2008-09-24 16:34:00) 标签: linux it Linux系统下玩经典游戏 CS1.5服务器架设 首先你要下载两个文件.hlds ...
- Windows系统下创建系统还原点 和 进行系统还原
在使用Windows系统时,会因为各种原因需要还原系统.还原系统就需要还原点,下面就说一下还原点的创建和系统还原. 一.还原点创建: 1.1.在 我的电脑上–>右击–>选择属性 1.2.点 ...
- linux内核下获取系统时间,linux内核获取当前系统时间
转载自:http://blog.csdn.net/heanyu/article/details/6552578 7.2. 获知当前时间 内核代码能一直获取一个当前时间的表示, 通过查看 jifies ...
最新文章
- 我来告诉你【Redis】入门 一
- mysql总是出现-_mysql 总是莫名其妙的关闭:报错
-问答-阿里云开发者社区-阿里云...
- QCustomplot控件设备背景图片(Qt图片自适应控件大小),并且设置绘图区域颜色透明
- 十五个实用的mysql语句分享_分享MySQL中实用的几种SQL语句
- 51nod 2006 飞行员配对(二分图最大匹配) 裸匈牙利算法 求二分图最大匹配题
- 7-174 两个有序链表序列的合并 (20 分)
- php 判断字符串中是否包含另一个字符串 strpos
- Android JNI 学习(十):String Operations Api Other Apis
- POJ1315 UVA639 UVALive5325 Don't Get Rooked题解
- Slider 滑动条效果
- easyui 中iframe嵌套页面,提示弹窗遮罩的解决方法,parent.$.messager.alert和parent.$.messager.confirm...
- 超级搜索术2-人脉搜索/分类整理
- openpyxl python 框线_Openpyxl对单元格应用边框
- R语言期末试题【二期补充】-重庆工商大学-统计学课程
- 原来系统还能这么装!教你虚拟光驱Daemon重装win10
- RPLIDAR十分钟极速入门教程
- 推荐几个无版权的免费图片网站
- 「MacOS鼠标操作技巧」如何设置鼠标”的速度、滚动方向等配置?
- 如何理解GPU中的SIMT(单指令流多线程模型)
- 程序设计与算法郭炜老师的课堂笔记3
热门文章
- 阿里云linux上安装,卸载mysql与重新安装配置Mysql
- 基金行业数据安全保障体系建设探析
- (转)曹锋、宋天玮:区块链技术在证券市场中的应用探索
- 阿里云蒋江伟:什么是真正的云原生?
- 亮相云栖:这些被Gartner点名的2020年安全风向
- 【配送路径规划】基于matlab模拟退火算法求解单配送中心多客户多车辆最短路径规划问题【含Matlab源码 1604期】
- 【手指识别】基于matlab GUI指尖图像采集与检测【含Matlab源码 585期】
- 【图像去噪】基于matlab GUI均值+中值滤波图像去噪【含Matlab源码 372期】
- 【数学建模】2021年美赛C题思路(预测模型和图像识别)【含Matlab源码 245期】
- 【数学建模】基于matlab重庆三号线地铁运行仿真【含Matlab源码 042期】