c# 检测操作系统版本

我们通过System.Environment.OSVersion.Version获得操作系统的版本号,然后再根据版本号进行判断操作系统是什么版本

Version 类的属性

 

Operating system Version number dwMajorVersion dwMinorVersion
Windows 10 10.0 10   0
Windows 8.1 6.3 6   3
Windows 8 6.2 6 2
Windows 7 6.1 6 1
Windows Server 2008 6.0 6 0
Windows Server 2003 5.2 5 2
Windows 2000 5.0 5 0

 参考于:https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms724834(v=vs.85).aspx

注意:在msdn官方文档有说明 → OSVersion 属性报告两个相同的版本号 (6.2.0.0) Windows 8 和 Windows 8.1。在某些情况下, OSVersion 属性可能不会返回与指定的 Windows 程序兼容性模式功能的版本相匹配的操作系统版本。

代码:

复制代码
    public class GetOSystem
    {
        private const string Windows2000 = "5.0";
        private const string WindowsXP = "5.1";
        private const string Windows2003 = "5.2";
        private const string Windows2008 = "6.0";
        private const string Windows7 = "6.1";
        private const string Windows8OrWindows81 = "6.2";
        private const string Windows10 = "10.0";

        private string OSystemName;

        public void setOSystemName(string oSystemName)
        {
            this.OSystemName = oSystemName;
        }

        public  GetOSystem()
        {
            switch (System.Environment.OSVersion.Version.Major + "." + System.Environment.OSVersion.Version.Minor)
            {
                case Windows2000:
                    setOSystemName("Windows2000");
                    break;
                case WindowsXP:
                    setOSystemName("WindowsXP");
                    break;
                case Windows2003:
                    setOSystemName("Windows2003");
                    break;
                case Windows2008:
                    setOSystemName("Windows2008");
                    break;
                case Windows7:
                    setOSystemName("Windows7");
                    break;
                case Windows8OrWindows81:
                    setOSystemName("Windows8.OrWindows8.1");
                    break;
                case Windows10:
                    setOSystemName("Windows10");
                    break;
            }

            Console.WriteLine(OSystemName);
        }
    }
GetOSyste
复制代码
复制代码
class Program
    {
        static void Main(string[] args)
        {
                       #region 检测系统

            new GetOSystem();

            #endregion
                }
        }
复制代码

输出结果:

 

posted @   huangenai  阅读(10643)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示