C# 获取 Windows 操作系统版本和名称

1. 概述

从 Windows 10 开始,微软已经弃用了 GetVersionEx 方式获取 Windows 系统版本 [官方解释]。这就导致网上一大批C#获取 Windows 版本的代码把 Windows 10 识别为 Windows 8。比如我的电脑 Windows 10 就被识别成 6.2.9200,进而判断出是 Windows 8。

按照微软官方论坛提示,可以通过 WMI(Windows Management Instruction) 获取正确系统的版本号。下面把传统获取方式、WMI获取方式和直接获取操作系统名称的三个方法列出来。

2. 展示

2.1 传统获取方式(弃用)

传统获取 Windows 系统版本的方法:先获取 Windows 系统的版本号,再通过版本号比对出操作系统名称。

public static string get_OSVersion()
{
    //Get Operating system information.
    OperatingSystem os = Environment.OSVersion;
    //Get version information about the os.
    Version vs = os.Version;

    //Variable to hold our return value
    string operatingSystem = "";

    if (os.Platform == PlatformID.Win32Windows)
    {
        //This is a pre-NT version of Windows
        switch (vs.Minor)
        {
            case 0:
                operatingSystem = "95";
                break;
            case 10:
                if (vs.Revision.ToString() == "2222A")
                    operatingSystem = "98SE";
                else
                    operatingSystem = "98";
                break;
            case 90:
                

你可能感兴趣的:(程序员,c++,职场,编程,互联网,C语言,c#,面试,程序员,互联网,编程,c++)