[发明专利]一种识别操作系统版本的方法及系统在审
申请号: | 201810756347.7 | 申请日: | 2018-07-11 |
公开(公告)号: | CN109062635A | 公开(公告)日: | 2018-12-21 |
发明(设计)人: | 王唯融 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 黄晓燕 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用条件 操作系统版本 获取系统 操作系统 验证 服务器版本 客户机环境 方法识别 直接调用 兼容性 调用 桌面 | ||
本发明实施例公开了一种识别操作系统版本的方法及系统,所述方法通过验证不同操作系统识别函数的适用条件,在满足当前识别函数的适用条件时,调用该识别函数,获取系统版本号,得到操作系统版本。本发明利用识别函数适用条件的不同,对客户机环境进行验证,在满足相应函数的适用条件时,直接调用该识别函数,获取系统版本号,可以在不更换使用高版本Visual Studio的情况下,使用本发明的方法识别出自Windows 2000到Windows 10之间的所有桌面版、服务器版本操作系统,适用范围广、兼容性高。
技术领域
本发明涉及计算机软件技术领域,具体地说是一种识别操作系统版本的方法及系统。
背景技术
对于Windows应用程序而言,由于系统差异导致的业务逻辑多样性,判断当前所处的操作系统的版本,往往是不可或缺的步骤。
在传统Windows系统中,识别操作系统版本的工作可由GetVersionEx函数完成。然而,面对新发布的Windows 8.1/Windows Server 2012 R2等系统,这一经典函数无法识别。在Windows 8.1、Windows 10,以及相应的服务器版本系统中,调用该函数都将获得无效的返回数据。
针对这一问题,虽然微软官方提供了新的API((Application ProgrammingInterface,应用程序编程接口)进行弥补,但新API的兼容性却很难满足用户的广泛需求。
发明内容
本发明实施例中提供了一种识别操作系统版本的方法及系统,以解决现有技术中识别操作系统版本的API兼容性低、应用范围窄的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明第一方面提供了一种识别操作系统版本的方法,通过验证不同操作系统识别函数的适用条件,在满足当前识别函数的适用条件时,调用该识别函数,获取系统版本号,得到操作系统版本。
结合第一方面,在第一方面第一种可能的实现方式中,所述识别函数包括RtlGetNtVersionNumbers函数、NetWkstaGetInfo函数和GetVersionEx函数。
结合第一方面,在第一方面第一种可能的实现方式中,所述识别函数的验证顺序依次为RtlGetNtVersionNumbers函数、NetWkstaGetInfo函数、GetVersionEx函数。
结合第一方面,在第一方面第一种可能的实现方式中,验证识别函数RtlGetNtVersionNumbers的适用条件,获取系统版本号的具体过程为:
调用GetProcAddress函数,获取返回函数指针;
判断返回函数指针是否为NULL;
若是,则继续验证NetWkstaGetInfo函数的适用条件;
若否,则调用RtlGetNtVersionNumbers函数,获取操作系统版本号。
结合第一方面,在第一方面第一种可能的实现方式中,,验证识别函数NetWkstaGetInfo的适用条件,获取系统版本号的具体过程为:
判断WorkStation服务是否开启;
若否,则调用GetVersionEx函数,获取操作系统版本号;
若是,则调用NetWkstaGetInfo函数,获取操作系统版本号。
结合第一方面,在第一方面第一种可能的实现方式中,通过执行sc querylanmanworkstation命令,根据返回值判断WorkStation服务是否开启。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810756347.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用启动方法及移动终端
- 下一篇:一种数据处理方法、装置、设备及介质