Windows Talk
02.10.2014 um 15:33@dS
Hier mal ein programmiertechnischer Aufbruch der ganzen Aussage:
Normalerweise geht man so vor und liest PlatformID, Major Version und Minor Version aus. So bekommt man eine eindeutige Zuordnung und vermeidet das scheinbare Dilemma.
So ist ein Betriebssystem mit
PlatformID Win32NT, Major Version 6 und Minor Version 1 = Windows 7 / Windows Server 2008 R2
Man kann aber auch hingehen und einfach hingehen und den
abfragen. Der gibt für Windows 7 dann aus:
Microsoft Windows NT 6.1.7600.0
Diese Funktion gibt es aber nur ab Win XP SP2. Ich weiß nicht, wie es bei Win9x gehandhabt wurde. Es kann da wirklich sein, dass alte Programme die Bei der Versionsabfrage etwas Fragen wie:
Das würde dann alle Betriebssysteme ausgeben, die im Versionstext den Titel "Microsoft Windows 9" haben.
Ich weiß jetzt nicht ob Windows 10 als Windows NT 6.4, Windows NT 7 oder Windows NT 10 geführt wird, aber ich bin mir recht sicher, dass es durch den Zusatz "NT" nicht mit Windows 9x kollidieren sollte. Denn es handelt sich ja eigentlich nicht um Windows 9, sondern um Windows NT 9.
Hier mal ein programmiertechnischer Aufbruch der ganzen Aussage:
public string GetOSVersion()
{
switch (Environment.OSVersion.Platform) {
case PlatformID.Win32S:
return "Win 3.1";
case PlatformID.Win32Windows:
switch (Environment.OSVersion.Version.Minor) {
case 0:
return "Win95";
case 10:
return "Win98";
case 90:
return "WinME";
}
break;
case PlatformID.Win32NT:
switch (Environment.OSVersion.Version.Major) {
case 3:
return "NT 3.51";
case 4:
return "NT 4.0";
case 5:
switch (Environment.OSVersion.Version.Minor) {
case 0:
return "Win2000";
case 1:
return "WinXP";
case 2:
return "Win2003";
}
break;
case 6:
switch(Environment.OSVersion.Version.Minor) {
case 0:
return "Vista/Win2008Server";
case 1:
return "Win7/Win2008Server R2";
case 2:
return "Win8/Win2012Server";
case 3:
return "Win8.1/Win2012Server R2";
}
break;
}
break;
case PlatformID.WinCE:
return "Win CE";
}
return "Unknown";
}
Normalerweise geht man so vor und liest PlatformID, Major Version und Minor Version aus. So bekommt man eine eindeutige Zuordnung und vermeidet das scheinbare Dilemma.
So ist ein Betriebssystem mit
PlatformID Win32NT, Major Version 6 und Minor Version 1 = Windows 7 / Windows Server 2008 R2
Man kann aber auch hingehen und einfach hingehen und den
Environment.OSVersion.VersionString
abfragen. Der gibt für Windows 7 dann aus:
Microsoft Windows NT 6.1.7600.0
Diese Funktion gibt es aber nur ab Win XP SP2. Ich weiß nicht, wie es bei Win9x gehandhabt wurde. Es kann da wirklich sein, dass alte Programme die Bei der Versionsabfrage etwas Fragen wie:
if (Environment.OSVersion.VersionString.IndexOf("Windows 9",0) >= 0)
Das würde dann alle Betriebssysteme ausgeben, die im Versionstext den Titel "Microsoft Windows 9" haben.
Ich weiß jetzt nicht ob Windows 10 als Windows NT 6.4, Windows NT 7 oder Windows NT 10 geführt wird, aber ich bin mir recht sicher, dass es durch den Zusatz "NT" nicht mit Windows 9x kollidieren sollte. Denn es handelt sich ja eigentlich nicht um Windows 9, sondern um Windows NT 9.