获取系统版本 XP ,VIS win7 等

    技术2025-03-16  17

    解决了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 ;}

     

    最新回复(0)