打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
教大家利用微软未公开的API,获取系统版本!(附编程代码)

今天逛论坛看到一个好玩的帖子,就是利用一个API,来获取系统的版本号,利用此API可以兼容各个系统,未我们编写程序获取系统版本提供了很大的便利,该API是微软未公布的API,以前有人用过,但是知道的人不多!

于是我利用工具查看了ntdll.dll导出函数,发现确实有这个API!

利用的是:RtlGetNtVersionNumbers这个API!

我查询了下本机的系统版本号:

我用C语言实现了这个功能:

示例代码如下:

#include <stdio.h>#include <windows.h>typedef void (__stdcall *NTPROC)(DWORD*,DWORD*,DWORD*);void GetWinVer(){ HINSTANCE hinst = LoadLibrary("ntdll.dll"); DWORD dwMajor,dwMinor,dwBuildNumber; NTPROC proc = (NTPROC)GetProcAddress(hinst,"RtlGetNtVersionNumbers"); proc(&dwMajor,&dwMinor,&dwBuildNumber); dwBuildNumber&=0xffff; printf("系统版本:%d.%d.%d
",dwMajor,dwMinor,dwBuildNumber); FreeLibrary(hinst);}void main(void){ GetWinVer();}

输入结果:

系统版本:10.0.16299

另附上版本对照表:

' 版本区分:“主版本”.“次版本”

' 10.0 - Win10 / Windows Server 2016

' 6.3 - Win8.1 / Windows Server 2012 R2

' 6.2 - Win8 / Windows Server 2012

' 6.1 - Win7 / Windows Server 2008 R2

' 6.0 - Vista / Windows Server 2008

' 5.2 - Windows Server 2003 R2 / Windows Server 2003 / Windows Home Server / WinXP x64

' 5.1 - Windows XP

' 5.0 - Windows 2000

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Windows系统版本判定那些事儿
.NET Framework 和 Windows OS 版本 | Microsoft Docs
Windows历代版本一览
Kubernetes 暴惊天大漏洞,请升级生产环境的集群!
模組化的 IIS 7 與 .NET 能力整合
操作系统是windows server (R2) 2008 Enterprise 64位的 出现内部版本6002 此windows副本不是正版!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服