⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 检测机器操作系统的版本
💻 CPP
字号:
#ifdef _WIN32                    
#include <afxwin.h>     // MFC core and standard components
#elif _WINDOWS
#include <afxwin.h>     // MFC core and standard components
#elif _DOS
#include <afx.h>
#endif

#include "dtwinver.h"



#ifdef _WINDOWS
int PASCAL WinMain(HINSTANCE /*hinstCurrent*/, HINSTANCE /*hinstPrevious*/, LPSTR /*lpszCmdLine*/, int /*nCmdShow*/)
{ 
#else
int main()
{                                  
#endif
  OS_VERSION_INFO osvi;
  memset(&osvi, 0, sizeof(OS_VERSION_INFO));
  osvi.dwOSVersionInfoSize = sizeof(OS_VERSION_INFO);
  char sText[512];
  char sBuf[100];
  
  if (GetOSVersion(&osvi))
  {                                           
    sprintf(sText, "GetOSVersion reports that you are running\nEmulated OS: ");
    
    switch (osvi.dwEmulatedPlatformId)
    {
      case PLATFORM_WIN32S:            
      {
        sprintf(sBuf, "Win32s "); 
        break; 
      }
      case PLATFORM_WINDOWS:           
      {
        if (IsEmulatedWindows95(&osvi))
          sprintf(sBuf, "Windows 95");                 
        else if (IsEmulatedWindows98(&osvi))
          sprintf(sBuf, "Windows 98");                 
        else
          sprintf(sBuf, "Windows");
        break;
      }
      case PLATFORM_NT_WORKSTATION:    
      {
        sprintf(sBuf, "Windows NT Workstation");     
        break;
      }
      case PLATFORM_WINDOWS31:         
      {
        sprintf(sBuf, "Windows");                    
        break;
      }
      case PLATFORM_WINDOWSFW:         
      {
        sprintf(sBuf, "Windows For Workgroups");     
        break; 
      }
      case PLATFORM_DOS:               
      {
        sprintf(sBuf, "Dos");                        
        break;
      }
      case PLATFORM_NT_SERVER:         
      {
        sprintf(sBuf, "Windows NT Server");          
        break;
      }
      default: 
      {
        sprintf(sBuf, "Unknown");                    
        break;
      }
    }                     
    strcat(sText, sBuf);
    sprintf(sBuf, " v%d.", osvi.dwEmulatedMajorVersion); 
    strcat(sText, sBuf);     
    sprintf(sBuf, "%02d ", osvi.dwEmulatedMinorVersion); 
    strcat(sText, sBuf);     
    sprintf(sBuf, "Build Number:%d\n", osvi.dwEmulatedBuildNumber);
    strcat(sText, sBuf);
    sprintf(sBuf, "Underlying OS: ");
    strcat(sText, sBuf);
                                                         
    switch (osvi.dwUnderlyingPlatformId)
    {
      case PLATFORM_WIN32S:            
      {
        sprintf(sBuf, "Win32s");                     
        break;
      }
      case PLATFORM_WINDOWS:           
      {
        if (IsUnderlyingWindows95(&osvi))
          sprintf(sBuf, "Windows 95");                 
        else if (IsUnderlyingWindows98(&osvi))
          sprintf(sBuf, "Windows 98");                 
        else
          sprintf(sBuf, "Windows");
        break;
      }
      case PLATFORM_NT_WORKSTATION:    
      {
        sprintf(sBuf, "Windows NT Workstation");     
        break;
      }
      case PLATFORM_WINDOWS31:         
      {
        sprintf(sBuf, "Windows");                    
        break;
      }
      case PLATFORM_WINDOWSFW:         
      {
        sprintf(sBuf, "Windows For Workgroups");     
        break;
      }
      case PLATFORM_DOS:               
      {
        sprintf(sBuf, "Dos");                        
        break;
      }
      case PLATFORM_NT_SERVER:         
      {
        sprintf(sBuf, "Windows NT Server");          
        break;
      }
      default:                         
      {
        sprintf(sBuf, "Unknown");                    
        break;
      }
    }                                      
    strcat(sText, sBuf);        
    sprintf(sBuf, " v%d.", osvi.dwUnderlyingMajorVersion); 
    strcat(sText, sBuf);     
    sprintf(sBuf, "%02d ", osvi.dwUnderlyingMinorVersion); 
    strcat(sText, sBuf);     
    sprintf(sBuf, "Build Number:%d\n", osvi.dwUnderlyingBuildNumber);
    strcat(sText, sBuf);
  }
  else
    sprintf(sText, "Failed in call to GetOSVersion\n");       
                 

  #ifdef _WINDOWS
    MessageBox(NULL, sText, "OS Version Detector", MB_OK);
  #else
    printf(sText);
  #endif                                                  
                 
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -