send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

GetOS en C++

  • 0 Respuestas
  • 1528 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« en: Enero 17, 2013, 01:50:48 pm »
Hola a todos. En esta ocasion el code es para determinar el sistema operativo en el que se ejecuta.

Código: C
  1. #pragma comment(lib, "User32.lib")
  2. #include <windows.h>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. void main(void) {
  8.  
  9.         OSVERSIONINFOEX OSver;
  10.     BOOL bOsVersionInfoEx;
  11.  
  12.     ZeroMemory(&OSver, sizeof(OSVERSIONINFOEX));
  13.  
  14.     OSver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
  15.     bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &OSver);
  16.  
  17.     if(bOsVersionInfoEx == 0 )
  18.                 cout << "Error" << endl;
  19.  
  20.         switch(OSver.dwPlatformId) {
  21.                 case VER_PLATFORM_WIN32s:
  22.                         cout << "Windows " << OSver.dwMajorVersion << OSver.dwMinorVersion << endl;
  23.                         break;
  24.                 case VER_PLATFORM_WIN32_WINDOWS:
  25.                         if(OSver.dwMinorVersion==0)
  26.                                 cout << "Windows 95" << endl;  
  27.                         else
  28.                                 if(OSver.dwMinorVersion==10)  
  29.                                         cout << "Windows 98" << endl;
  30.                         else
  31.                                         if(OSver.dwMinorVersion==90)  
  32.                                                 cout << "Windows Me" << endl;
  33.                         break;
  34.                 case VER_PLATFORM_WIN32_NT:
  35.                         if(OSver.dwMajorVersion==5 && OSver.dwMinorVersion==0)
  36.                                 cout << "Windows 2000" << OSver.szCSDVersion << endl;
  37.                         else   
  38.                                 if(OSver.dwMajorVersion==5 && OSver.dwMinorVersion==1)
  39.                                         cout << "Windows XP " << OSver.szCSDVersion << endl;
  40.                                 else   
  41.                                         if(OSver.dwMajorVersion==5 && OSver.dwMinorVersion==2)
  42.                                                 if (OSver.wProductType==VER_NT_WORKSTATION)
  43.                                                         cout << "Windows XP Profesional x64" << endl;
  44.                                                 else
  45.                                                         cout << "Windows Server 2003" << endl;
  46.                                         else
  47.                                                 if(OSver.dwMajorVersion==6 && OSver.dwMinorVersion==0)
  48.                                                         if (OSver.wProductType==VER_NT_WORKSTATION)
  49.                                                                 cout << "Windows Vista" << endl;
  50.                                                         else
  51.                                                                 cout << "Windows Server 2008" << endl;
  52.                                             else
  53.                                                         if(OSver.dwMajorVersion==6 && OSver.dwMinorVersion==1)
  54.                                                                 if (OSver.wProductType==VER_NT_WORKSTATION)
  55.                                                                         cout << "Windows 7" << endl;
  56.                                                                 else
  57.                                                                         cout << "Windows Server 2008 R2" << endl;
  58.                                                         else
  59.                                                                 if(OSver.dwMajorVersion==6 && OSver.dwMinorVersion==2)
  60.                                                                         if (OSver.wProductType==VER_NT_WORKSTATION)
  61.                                                                                 cout << "Windows 8" << endl;
  62.                                                                         else
  63.                                                                                 cout << "Windows Server 2012" << endl;
  64.                                                                 else
  65.                                                                         if(OSver.dwMajorVersion<=4)
  66.                                                                                 cout << "Windows NT" << endl;
  67.                                                                         else   
  68.                                                                                 cout << "Windows " << OSver.dwMajorVersion << OSver.dwMinorVersion << endl;
  69.                         break;
  70.         }
  71.         You are not allowed to view links. Register or Login();
  72. }
  73.  

Gracias a la api GetVersionEx y con la estructura OSVERSIONINFOEX podemos obtener mucha informacion del sistema operativo.

Un ejemplo:



Saludos

 

¿Te gustó el post? COMPARTILO!