Platform ID Windows Vista

partitionist

Erfahrenes Mitglied
Hab folgendes:

Code:
 ...
 else if (version.dwPlatformId == VER_PLATFORM_WIN32_NT)
 	 if (version.dwMinorVersion == 90)
 	cout <<"Windows Millenium Edition ";	
 	  else if  (version.dwMajorVersion==5)
 	 cout <<"Windows XP ";
 ....

Hat Vista als ID die Version 6 oder was anderes?
 
Kann sein muss aber nicht. Der Code mit dwMajorVersion==5 ist aber falsch. Das ergebniss muss nicht XP sein. Du musst noch dwMinorVersion prüfen um es genau herauszufinden.
dwMajorVersion==5 trifft auch auf andere aktuelle Windows Versionen zu (zB. Server Version). Ich denke mal das dwMajorVersion aufsteigt. Also wahrscheinlich 6. Oder prüfe einfach auch > 5.
 
So kann man XP genau prüfen

hier die Tabelle aus meiner MSDN Library

dwMajorVersion
Major version number of the operating system. This member can be one of the following values. Operating System Meaning
Windows 95 = 4
Windows 98 = 4
Windows Me = 4
Windows NT 3.51 = 3
Windows NT 4.0 = 4
Windows 2000 = 5
Windows XP = 5
Windows Server 2003 family = 5

dwMinorVersion
Minor version number of the operating system. This member can be one of the following values. Operating System Meaning
Windows 95 = 0
Windows 98 = 10
Windows Me = 90
Windows NT 3.51 = 51
Windows NT 4.0 = 0
Windows 2000 = 0
Windows XP = 1
Windows Server 2003 family = 2


auf XP prüft man jetzt so

Code:
if(version.dwMajorVersion == 5)
{
    // entweder 2000 / XP / Server 2003 family

    if (version.dwMinorVersion == 0)
        // 2000
    if (version.dwMinorVersion == 1)
        // XP
    if (version.dwMinorVersion == 2)
        // Server 2003 family
}
 
Zurück