如何使用VisualC#.NET检查Windows版本

如何使用VisualC#.NET检查Windows版本


如何:使用 Visual C# .NET 检查 Windows 版本本文内容:概述需求获取 Windows 版本数据获取 Windows 系统信息判断平台判断 Windows 95, Windows 98, Windows 98 第二版或 Windows Me 的版本判断 Windows NT, Windows 2000, 或 Windows XP 的版本编译样例--------------------------------------------------------------------------------概述本文描述了如何检查您的应用运行于哪个操作系统上。本文区分了 Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows 98 第二版, Microsoft Windows Millennium Edition (Windows Me), Microsoft Windows NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000, 和 Microsoft Windows XP。返回--------------------------------------------------------------------------------需求Microsoft Visual C# .NET对 Visual C# 编程有一定理解返回--------------------------------------------------------------------------------获取 Windows 版本数据为了检查操作系统,您必须获取下列数据: -------------------------------------------------------------- | |Windows|Windows|Windows|Windows NT|Windows|Windows|| | 95 | 98 | Me | 4.0 | 2000 | XP | -------------------------------------------------------------- |PlatformID | 1 | 1 | 1 | 2 | 2 | 2 | -------------------------------------------------------------- |主版本号 | 4 | 4 | 4 | 4 | 5 | 5 | -------------------------------------------------------------- |副版本号 | 0 | 10 | 90 | 0 | 0 | 1 | -------------------------------------------------------------- 注释:尽管本文的代码在所有 32-bit 版本的 Windows 上验证过,但 Windows 95 和 Windows NT 3.51 不支持 Microsoft Visual Studio .NET 或者 common language runtime。返回--------------------------------------------------------------------------------获取 Windows 系统信息在 System 命名空间中包含了一个名为 OperatingSystem 的类。在 OperatingSystem 类中的属性提供了正在使用的操作系统信息。System.Environment 类中的 OSVersion 属性返回一个 OperatingSystem 对象。System.OperatingSystem osInfo = System.Environment.OSVersion;返回--------------------------------------------------------------------------------判断平台判断操作系统的第一步就是辨别正在使用的是哪个操作系统。您可以使用 OperatingSystem 类中的 PlatformID 属性来决定在用的是哪个操作系统。例如,枚举类型属性 Win32Windows 的值指明了下列操作系统之一:Windows 95Windows 98Windows 98 Second EditionWindows Me类似的,WinNT 属性的值指明了下列操作系统之一:Windows NT 3.51Windows NT 4.0Windows 2000Windows XPswitch(osInfo.Platform){case System.PlatformID.Win32Windows: {// Code to determine specific version of Windows 95, // Windows 98, Windows 98 Second Edition, or Windows Me.}case System.PlatformID.Win32NT:{// Code to determine specific version of Windows NT 3.51, // Windows NT 4.0, Windows 2000, or Windows XP.}}返回--------------------------------------------------------------------------------判断 Windows 95, Windows 98, Windows 98 第二版或 Windows Me 的版本 如果您想判断 Windows 95, Windows 98, Windows 98 第二版或 Windows Me 的版本,您可以分析主版本号和副版本号。// Platform is Windows 95, Windows 98, Windows 98 Second Edition,// or Windows Me.case System.PlatformID.Win32Windows:switch (osInfo.Version.Minor){case 0:Console.WriteLine ("Windows 95");break;case 10:if(osInfo.Version.Revision.ToString()=="2222A")Console.WriteLine("Windows 98 Second Edition");elseConsole.WriteLine("Windows 98");break;case 90:Console.WriteLine("Windows Me");break;}break;返回--------------------------------------------------------------------------------判断 Windows NT, Windows 2000, 或 Windows XP 的版本如果您想判断 Windows NT, Windows 2000, 或 Windows XP 的版本,您也可以分析主版本号和副版本号。// Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000,// or Windows XP.case System.PlatformID.Win32NT:switch(osInfo.Version.Major){case 3:Console.WriteLine("Windows NT 3.51");break;case 4:Console.WriteLine("Windows NT 4.0");break;case 5:if (osInfo.Version.Minor==0) Console.WriteLine("Windows 2000");elseConsole.WriteLine("Windows XP");break;}break;返回--------------------------------------------------------------------------------编译样例下一步就是编译一个项目来测试功能:在 Visual Studio .NET 中,打开一个新的 C# console 应用。系统会默认打开 Class1.cs 的代码窗口。用下面的代码替换所有 Class1.cs 中的代码:? using System;namespace determineOS_CS{ class Class1{static void Main(string[] args){// Get OperatingSystem information from the system namespace.System.OperatingSystem osInfo =System.Environment.OSVersion;// Determine the platform.switch(osInfo.Platform){// Platform is Windows 95, Windows 98, // Windows 98 Second Edition, or Windows Me.case System.PlatformID.Win32Windows:switch (osInfo.Version.Minor){case 0:Console.WriteLine ("Windows 95");break;case 10:if(osInfo.Version.Revision.ToString()=="2222A")Console.WriteLine("Windows 98 Second Edition");elseConsole.WriteLine("Windows 98");break;case 90:Console.WriteLine("Windows Me");break;}break;// Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000,// or Windows XP.case System.PlatformID.Win32NT:switch(osInfo.Version.Major){case 3:Console.WriteLine("Windows NT 3.51");break;case 4:Console.WriteLine("Windows NT 4.0");break;case 5:if (osInfo.Version.Minor==0) Console.WriteLine("Windows 2000");elseConsole.WriteLine("Windows XP");break;}break;}Console.ReadLine ();}}}  (2005-9-24:03:22)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

一个用c#写的扫描asp源码漏洞的应用程序(2)
C#算法(二)插入排序
c#重点知识解答(五代理:一)
C#调用非托管DLL的APIs
winform 用flash美化
VisualC#的菜单编程
GDI+中常见的几个问题(3)
创建不规则窗体和控件(2)
如何使用C#调用非托管DLL函数
C#积木模块ABC(四)