admin管理员组

文章数量:1592244

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

按照微软官方论坛提示,可以通过 WMI(Windows Management Instruction) 获取正确系统的版本号。下面把WMI方式获取Windows系统版本方式写出来。

顺便吐槽一下,现在博客的原创是越来越水。比如说今天谈到滴这个问题:排在前面的几个搜索结果基本都是一样的,那些打着原创滴博主也不知道是谁抄谁,总之都一样。更严重滴问题是:按照博客照搬滴代码编译都通过不了。。。。;
麻烦各位同仁抄别人东西的时候,请先验证一下。
好了,回到正题。
方法如下
1:引用system.management库

2:代码如下:

public static string get_OSVersion()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
                string sCPUSerialNumber = "";
                foreach (ManagementObject mo in searcher.Get())
                {
                    
                    sCPUSerialNumber = mo["Name"].ToString().Trim();//操作系统名字
                    //sCPUSerialNumber = mo["BootDevice"].ToString().Trim();//系统启动分区
                    //sCPUSerialNumber = mo["NumberOfProcesses"].ToString().Trim();//当前运行的进程数
                    //sCPUSerialNumber = mo["SerialNumber"].ToString().Trim();//操作系统序列号
                    //sCPUSerialNumber = mo["OSLanguage"].ToString().Trim();//操作系统的语言
                    //sCPUSerialNumber = mo["Manufacturer"].ToString().Trim();//
                }
                return sCPUSerialNumber.Substring(10, 10);//分割字符串
            }
            catch (Exception e)
            {
                return string.Empty;
            }
        }

3:扩展
ManagementObjectSearcher()里面的参数列表如下链接。

参数列表

本文标签: 操作系统名称分区制造商系统启动