admin管理员组

文章数量:1532357

2024年3月19日发(作者:)

GetVersionEx获取系统版本信息

最近在windows 8上获取系统版本信息需要调用系统API,于是

用到了GetVersionEx。

首先看一看函数原型:

[cpp] view plaincopy

1. BOOL GetVersionEx(POSVERSIONINFO pVersionInformati

on);

结构OSVERSIONINFOEX定义如下:

[cpp] view plaincopy

1. typedef struct {

2. DWORD dwOSVersionInfoSize; //在使用GetVersionEx

之前要将此初始化为结构的大小

3. DWORD dwMajorVersion; //系统主版本号

4. DWORD dwMinorVersion; //系统次版本号

5. DWORD dwBuildNumber; //系统构建号

6. DWORD dwPlatformId; //系统支持的平台

7. TCHAR szCSDVersion[128]; //系统补丁包的名称

8. WORD wServicePackMajor; //系统补丁包的主版本

9. WORD wServicePackMinor; //系统补丁包的次版本

10. WORD wSuiteMask; //标识系统上的程序

11. BYTE wProductType; //标识系统类型

12. BYTE wReserved; //保留,未使用

13. } OSVERSIONINFOEX, *POSVERSIONINFOEX;

接着在调用函数之前先初始化结构的大小并调用函数,返回true

表示成功:

[cpp] view plaincopy

1. OSVERSIONINFOEX os;

2. rsionInfoSize=sizeof(os);

3. if(!GetVersionEx((OSVERSIONINFO *)&os))

4. {

5. return FALSE;

6. }

函数调用成功以后就可以通过OSVERSIONINFOEX来查看系统的

版本信息了。

根据微软操作系统编号发现windows 8 对应的windows version

number是6.2

如下:

Operating system Version number

Windows 8 6.2

Windows 7 6.1

Windows Server 2008 R2 6.1

Windows Server 2008 6.0

Windows Vista 6.0

Windows Server 2003 R2 5.2

Windows Server 2003 5.2

Windows XP 5.1

Windows 2000 5.0

下面是一个通过系统版本来判断操作系统名称的例子:

[cpp] view plaincopy

1. CString getSystemName()

2. {

3. SYSTEM_INFO info; //用SYSTEM_INFO结构判断

64位AMD处理器

4. GetSystemInfo(&info); //调用GetSystemInfo函数填

充结构

本文标签: 系统版本信息获取结构版本