很多时候我们要根据系统的不同版本进行不同的操作
下面给出了如何判断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;
} hackhp博客
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;
}
