解决了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 ;
}
本文提供了一个用于检测当前运行的Windows版本的实用函数。该函数通过调用GetVersionEx获取操作系统信息,并根据主要和次要版本号来确定具体的Windows版本,支持从Windows 98到Windows 7的多个版本。
1万+

被折叠的 条评论
为什么被折叠?



