我正在试图弄清楚如何获取Windows 8的操作系统名称。我目前正在使用以下代码,但它不处理Windows 7或Windows 8.
如何处理更新的Windows版本?
System.OperatingSystem os = Environment.OSVersion;
Version vs = os.Version;
if (os.Platform == PlatformID.Win32Windows)
{
switch (vs.Minor)
{
case 0:
operatingSystem = "95";
break;
case 10:
if (vs.Revision.ToString() == "2222A")
operatingSystem = "98SE";
else
operatingSystem = "98";
break;
case 90:
operatingSystem = "Me";
break;
default:
break;
}
}
else if (os.Platform == PlatformID.Win32NT)
{
switch (vs.Major)
{
case 3:
operatingSystem = "NT 3.51";
break;
case 4:
operatingSystem = "NT 4.0";
break;
case 5:
if (vs.Minor == 0)
operatingSystem = "2000";
else
operatingSystem = "XP";
break;
case 6:
if (vs.Minor == 0)
operatingSystem = "Vista";
else
operatingSystem = "7";
break;
default:
break;
}
}
MessageBox.Show("operating System: " + operatingSystem +
"\nOS Version: " + os.Version.ToString() +
"\nOS Platoform: " + os.Platform.ToString() +
"\nOS SP: " + os.ServicePack.ToString() +
"\nOS Version String: " + os.VersionString.ToString());
答案 0 :(得分:5)
从Windows Vista开始,发布的主号码为6
。 Windows Vista有6.0
,Windows 7有6.1
,Windows 8有6.2
。
有关概述,请参阅here。
修改强>
switch (vs.Major)
{
case 3:
Console.WriteLine("Windows NT 3.51");
break;
case 4:
Console.WriteLine("Windows NT 4.0");
break;
case 5:
if (vs.Minor == 0)
Console.WriteLine("Windows 2000");
else
Console.WriteLine("Windows XP");
break;
case 6:
if(vs.Minor == 0)
Console.WriteLine("Windows Vista");
else if(vs.Minor == 1)
Console.WriteLine("Windows 7");
else if(vs.Minor == 2)
Console.WriteLine("Windows 8")
break;
}
答案 1 :(得分:1)
您可以使用System.Environment.OSVersion
获取该内容,并且您正在寻找6.2
对于Windows 8,您应该检查以下内容:
var os = System.Environment.OsVersion;
bool isWindows8 = os.MajorVersion == 6 && os.MinorVersion == 2