今天逛论坛看到一个好玩的帖子,就是利用一个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();} 输入结果:
另附上版本对照表:
|
|