很多时候我们要根据系统的不同版本进行不同的操作,下面给出了如何判断Windows操作系统的版本函数,希望对大家有所帮助。
- int VRVGetSystemVersion(SYSTEM_VERSION *pnSystemVersion)
- {
- OSVERSIONINFO osvi;
- BOOL bOsVersionInfoEx;
- *pnSystemVersion = ENUM_SYSTEM_UNKOWN;
- memset(&osvi, 0, sizeof(OSVERSIONINFO));
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) &osvi)) )
- {
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (! GetVersionEx( (OSVERSIONINFO *) &osvi) )
- {
- return FALSE;
- }
- }
- switch (osvi.dwPlatformId)
- {
- case VER_PLATFORM_WIN32_NT:
- if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_VISTA;
- }
- if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_SER_2003;
- }
- if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_XP;
- }
- if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_2000;
- }
- if ( osvi.dwMajorVersion <= 4)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_NT;
- }
- if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_7;
- }
- break;
- case VER_PLATFORM_WIN32_WINDOWS:
- if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0 )
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_95;
- }
- if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_98;
- }
- if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
- {
- *pnSystemVersion = ENUM_SYSTEM_WIN_ME;
- }
- break;
- default:
- *pnSystemVersion = ENUM_SYSTEM_UNKOWN;
- break;
- }
- return TRUE;
- }
转载于:https://blog.51cto.com/3457302/877851