#include <stdio.h> #include <windows.h> //OSVERSIONINFO结构体的定义: // //typedef OSVERSIONINFOW OSVERSIONINFO; //typedef struct _OSVERSIONINFOW { // DWORD dwOSVersionInfoSize; //指定该数据结构的字节大小 // DWORD dwMajorVersion; //操作系统的主版本号 5代表2000以上版本 // DWORD dwMinorVersion; //操作系统的副版本号 0代表win2000. 1代表winxp // DWORD dwBuildNumber; //操作系统的创建号 // DWORD dwPlatformId; //操作系统ID号 // WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage 关于操作系统的一些附加信息 //} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; int GetOSVer() { OSVERSIONINFO osver; osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&osver); if(osver.dwPlatformId == 2) { if(osver.dwMajorVersion == 5 && osver.dwMinorVersion == 1) { printf("xp\n"); return(2); } if(osver.dwMajorVersion == 5 && osver.dwMinorVersion == 2) { printf("windows 2003\n"); return(3); } if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 0) { printf("vista and 2008\n"); return(4); } if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 1) { printf("2008 R2 and Windows 7\n"); return(5); } } return 0; } int main() { GetOSVer(); system("pause"); } |