GetVersionEx Frage



  • Habe eben schnell en Code geschrieben zum ermitteln des Betriebssystemes:

    #include <windows.h>
    #include <stdio.h>
    
    int main()
    {
      OSVERSIONINFO x;
    
      x.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
    
      GetVersionEx (&x);
    
      if (x.dwPlatformId == VER_PLATFORM_WIN32_NT)
        {
          if (x.dwMajorVersion == 4)
            printf ("OS are Win NT 4.0\n");
          if (x.dwMajorVersion == 5)
           {
            switch (x.dwMinorVersion)
             {
               case 0:
                printf ("OS are Win 2000\n");
                break;
               case 1:
                printf ("OS are Win XP\n");
                break;
               case 2:
                printf ("OS are Win 2003 Server\n");
             }
          }                                      
        }                 
          if (x.dwMajorVersion == 6)
            printf ("OS are Win Vista\n");          
    
     system("PAUSE");   
    }
    

    Doch wie könnte man jetzt noch die restlichen Windows Betriebssystem ermitteln? (z.B Windows 98 etc.)



  • 1. OS is <OS>
    2. Welche z.Bsp.? Gibt's für die anderen keine IDs?



  • Betriebssystem  	Platform-ID  	Major-Version  	Minor-Version
    Windows 95 	            1 	             4 	            0
    Windows 98 	            1 	             4 	           10
    Windows Me 	            1 	             4 	           90
    Windows NT 4.0 	        2                  4                 0
    Windows 2000 	          2                  5                 0
    Windows XP 	            2 	             5 	            1
    Windows Server 2003 	   2 	             5 	            2
    


  • BitteGibMirNurEinWort schrieb:

    Betriebssystem  	Platform-ID  	Major-Version  	Minor-Version
    Windows 95 	            1 	             4 	            0
    Windows 98 	            1 	             4 	           10
    Windows Me 	            1 	             4 	           90
    Windows NT 4.0 	        2                  4                 0
    Windows 2000 	          2                  5                 0
    Windows XP 	            2 	             5 	            1
    Windows Server 2003 	   2 	             5 	            2
    

    Danke.



  • Ok danke genauso was habe ich gesucht.
    😉

    Hier der Code:

    #include <windows.h>
    #include <stdio.h>
    
    /*
    Betriebssystem      Platform-ID      Major-Version      Minor-Version
    Windows 95                 1                  4                 0
    Windows 98                 1                  4                10
    Windows Me                 1                  4                90
    Windows NT 4.0             2                  4                 0
    Windows 2000               2                  5                 0
    Windows XP                 2                  5                 1
    Windows Server 2003        2                  5                 2*/
    
    int main()
    {
      OSVERSIONINFO x;
    
      x.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
    
      GetVersionEx (&x);
    
      if (x.dwPlatformId == 1)
        {
          switch (x.dwMinorVersion)
           {
             case 0:                                    
                printf ("OS is Windows 95\n");
                break;
             case 10:
                printf ("OS is Windows 98\n");
                break;
             case 90:
                printf ("OS is Windows Me\n");
                break;
           }      
        }                 
    
      if (x.dwPlatformId == VER_PLATFORM_WIN32_NT)
        {
          if (x.dwMajorVersion == 4)
            printf ("OS is Windows NT 4.0\n");
          if (x.dwMajorVersion == 5)
           {
            switch (x.dwMinorVersion)
             {
               case 0:
                printf ("OS is Windows 2000\n");
                break;
               case 1:
                printf ("OS is Windows XP\n");
                break;
               case 2:
                printf ("OS is Windows 2003 Server\n");
             }
          }                                      
        }                 
          if (x.dwMajorVersion == 6)
            printf ("OS are Win Vista\n");          
    
     system("PAUSE");   
    }
    

    Aber könnte ich den auch folgende Zeile:

    if (x.dwPlatformId == 1)
    

    Durch diese hier ersetzen:

    if (x.dwPlatformId == VER_PLATFORM_WIN32_NT)
    

    ?


Anmelden zum Antworten