解决了WINDOWS7判断的问题
BOOL GetOS(LPTSTR lpBuffer, UINT uSize)
{
OSVERSIONINFOEX osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !GetVersionEx ((OSVERSIONINFO *)&osvi) )
{
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if( !GetVersionEx( (OSVERSIONINFO *)&osvi) )
return FALSE ;
}
lpBuffer [0] = _T('/0') ;
if( osvi.dwMajorVersion == 4 )
{
switch( osvi.dwPlatformId )
{
case VER_PLATFORM_WIN32_WINDOWS:
lstrcpyn( lpBuffer, _T("Windows98"), uSize ) ;
break;
case VER_PLATFORM_WIN32_NT:
lstrcpyn( lpBuffer, _T("WindowsNT"), uSize ) ;
break;
}
}
else if( osvi.dwMajorVersion == 5 )
{
switch( osvi.dwMinorVersion )
{
case 0:
lstrcpyn( lpBuffer, _T("Windows2000"), uSize ) ;
break;
case 1:
lstrcpyn( lpBuffer, _T("WindowsXP"), uSize ) ;
break;
case 2:
lstrcpyn( lpBuffer, _T("Windows2003"), uSize ) ;
break;
}
}
else if( osvi.dwMajorVersion == 6 )
{
// lstrcpyn( lpBuffer, _T("Vista"), uSize ) ;
switch( osvi.dwMinorVersion )
{
case 0:
lstrcpyn( lpBuffer, _T("Vista"), uSize ) ;
break;
case 1:
lstrcpyn( lpBuffer, _T("Windows7"), uSize ) ;
break;
}
}
return lstrlen(lpBuffer) > 0 ;
}