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

本文介绍了由于微软弃用GetVersionEx方法,C#获取Windows 10等系统版本时出现的问题。提供了通过WMI和直接获取操作系统名称的正确方式,包括传统方法的弃用原因和新方法的实际应用示例。
摘要由CSDN通过智能技术生成

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:
                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值