admin 管理员组

文章数量: 1086019

参考

https://blog.csdn/abelia/article/details/93908598

常规判断方法如下,系统版本号和副版本号有重复情况

//-----------------
        //C#判断操作系统是否为Windows98
        public static bool IsWindows98
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() != "2222A");
            }
        }
        //C#判断操作系统是否为Windows98第二版
        public static bool IsWindows98Second
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() == "2222A");
            }
        }
        //C#判断操作系统是否为Windows2000
        public static bool IsWindows2000
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 0);
            }
        }
        //C#判断操作系统是否为WindowsXP
        public static bool IsWindowsXP
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 1);
            }
        }
        //C#判断操作系统是否为Windows2003
        public static bool IsWindows2003
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 2);
            }
        }
        //C#判断操作系统是否为WindowsVista
        public static bool IsWindowsVista
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 0);
            }
        }
        //C#判断操作系统是否为Windows7
        public static bool IsWindows7
        {
            get
            {
                return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 1);
            }
        }
        //C#判断操作系统是否为Unix
        public static bool IsUnix
        {
            get
            {
                return Environment.OSVersion.Platform == PlatformID.Unix;
            }
        }

根据下面的 Windows 操作系统名称和版本好的对应关系表,可以发现很多不同系列的操作系统拥有相同的主版本号和子版本号,因此通过比对版本号的方式来判断操作系统名称是很不靠谱。

±-----------------------------------------------------------------------------------+
| | PlatformID | Major version | Minor version |
±-----------------------------------------------------------------------------------+
| Windows 95 | Win32Windows | 4 | 0 |
| Windows 98 | Win32Windows | 4 | 10 |
| Windows Me | Win32Windows | 4 | 90 |
| Windows NT 4.0 | Win32NT | 4 | 0 |
| Windows 2000 | Win32NT | 5 | 0 |
| Windows XP | Win32NT | 5 | 1 |
| Windows XP 64-Bit Edition| Win32NT | 5 | 1 |
| Windows 2003 | Win32NT | 5 | 2 |
| Windows Server 2003 | Win32NT | 5 | 2 |
| Windows Server 2003 R2 | Win32NT | 5 | 2 |
| Windows 2003 | Win32NT | 5 | 2 |
| Windows Vista | Win32NT | 6 | 0 |
| Windows 2008 | Win32NT | 6 | 0 |
| Windows Server 2008 | Win32NT | 6 | 0 |
| Windows 7 | Win32NT | 6 | 1 |
| Windows 2008 R2 | Win32NT | 6 | 1 |
| Windows Server 2008 R2 | Win32NT | 6 | 1 |
| Windows 8 | Win32NT | 6 | 2 |
| Windows Server 2012 | Win32NT | 6 | 2 |
| Windows 8.1 | Win32NT | 6 | 3 |
| Windows Server 2012 R2 | Win32NT | 6 | 3 |
±-----------------------------------------------------------------------------------+
| Windows Server 2016 Technical Preview| Win32NT| 10 | 0 |
| Windows 10 | Win32NT | 10 | 0 |
±-----------------------------------------------------------------------------------+

如下取得系统名称 ,没有重复情况
需要引用 Microsoft.VisualBasic.Devices

            using Microsoft.VisualBasic.Devices;
            ComputerInfo info = new ComputerInfo();
            string osFullName = info.OSFullName;

本文标签: 系统 版本号 名称 Windows