GetVersionEx的降级问题
2016-03-18 14:49
375 查看
GetVersionEx在win8.1以后的系统中被MS降级,如果程序的目标平台没有指明,则该函数缺省返回6.2.0000(win8.0的版本号),为了准确使用该函数获取系统版本号,需要指明程序兼容的目标平台,方法如下:
1、创建CVPlatform.manifest,其中的trustInfo 节用于指明以管理员权限执行程序。
<?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.CVPlatform" type="win32"/>
<description>CVPlatform</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<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>
2、在VS2015的工程属性->manifest Tool->input and output的additional manifest files下加入CVPlatform.manifest的路径。
3、重新编译。
注意:VS2015提供了添加trustInfo的其他配置位置,需要保持与CVPlatform.manifest的一致。
GetVersionEx在win8.1以后的系统中被MS降级,如果程序的目标平台没有指明,则该函数缺省返回6.2.0000(win8.0的版本号),为了准确使用该函数获取系统版本号,需要指明程序兼容的目标平台,方法如下:
1、创建CVPlatform.manifest,其中的trustInfo 节用于指明以管理员权限执行程序。
<?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.CVPlatform" type="win32"/>
<description>CVPlatform</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<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>
2、在VS2015的工程属性->manifest Tool->input and output的additional manifest files下加入CVPlatform.manifest的路径。
3、重新编译。
注意:VS2015提供了添加trustInfo的其他配置位置,需要保持与CVPlatform.manifest的一致。
相关文章推荐
- shell
- 大类和细类实现二级联动效果
- 详解在PHP的Yii框架中使用行为Behaviors的方法
- 将字符串表示的字母转换成对应的字符类型的变量
- R中关于name的函数
- shell脚本
- shell脚本
- 【堆栈应用一】一个数divided=几个最小质因数的乘积(时间复杂度On)
- 论反馈信息如何推动 IT 运维团队进步?
- visual stdio2013软件安装及单元测试
- Linux下的Select函数详解
- 热门IOS 第三方库
- redis安装部署
- java实现落托数卡牌戏;
- rgb图像色彩提取
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- 用数学方法解决工程问题系列(二) 两个矩形(多边形)的碰撞检测
- Jmeter-ServerAgent
- 《UML和模式应用》读书笔记(一)
- ADSafe净网大师----所谓的去广告神器竟然在偷偷推送广告