【问题标题】:Get Windows OS name from XP and up从 XP 及更高版本获取 Windows 操作系统名称
【发布时间】:2013-03-18 02:02:57
【问题描述】:

我正在尝试弄清楚如何获取 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());

【问题讨论】:

标签: c# operating-system


【解决方案1】:

从 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; 
}

【讨论】:

  • 我知道版本号,但是如何在脚本中处理这些数字以便检测到版本。
  • 尝试使用vs.Majorvs.Minor
【解决方案2】:

您可以使用 System.Environment.OSVersion 获得它,并且您正在寻找 6.2

对于 Windows 8,您应该检查以下内容:

var os = System.Environment.OsVersion;
bool isWindows8 = os.MajorVersion == 6 && os.MinorVersion == 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-13
    • 2019-01-19
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多