如何使用 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。

获取 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 95
Windows 98
Windows 98 Second Edition
Windows Me
类似的,WinNT 属性的值指明了下列操作系统之一:

Windows NT 3.51
Windows NT 4.0
Windows 2000
Windows XP
    switch(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");
   else
     Console.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");
   else
    Console.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");
                     else
                        Console.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");
                     else
                        Console.WriteLine("Windows XP");
                     break;
               }break;
         }
         Console.ReadLine ();
      }
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言. 第1章 Windows窗体技术 案例1.1 多文档MDI应用程序 案例1.2 QQ窗体 案例1.3 卡通窗体, 案例1.4 带有分隔栏并更换主界面背景窗体 案例1.5 半透明渐显动画和渐变窗体 案例1.6 浮动的窗体 案例1.7 在屏幕中央并总在最前窗体 案例1.8 椭圆形窗体 案例1.9 可移动的五边形窗体 案例1.10 文字窗体 案例1.11 动态滑入滑出的闪烁窗体 案例1.12 以树形显示的窗体 案例1.13 图案动画窗体 本章小结 第2章 图形图像处理技术 案例2.1 波形图特效 案例2.2 在图像中写入文字 案例2.3 图像缩放与翻 .案例2.4 图像的涂沫 案例2.5 百叶窗图像效果 案例2.6 图像的纹理和遮罩动画效果 案例2.7 图像的积木和浮雕效果 案例2.8 文字的360°旋效果 案例2.9 可以随意移动的GIF动画 案例2.10 图像的属性及选择点的RGB颜色值 案例2.11 运行的时钟 本章小结 第3章 多媒体处理技术 案例3.1 MP3播放器 案例3.2 Flash播放器 案例3.3 Gif播放器 案例3.4 图像滚动展示动画效果 案例3.5 电子相册 案例3.6 交通信号灯 案例3.7 随机变换图像屏幕保护程序 案例3.8 MP3音乐屏幕保护程序 本章小结 第4章 数据库处理技术 案例4.1 利用控件连接Access数据库 案例4.2 利用代码连接加密Access数据库 案例4.3 读取并浏览Access数据库中的数据 案例4.4 利用控件连接SQL Server数据库 案例4.5 利用ADO.NET访问SQL Server数据库 案例4.6 连接Excel电子表格 案例4.7 利用SQL语句向数据库表中插入数据 案例4.8 利用存储过程修改数据库中的数据 案例4.9 分页显示数据库表中的数据 案例4.10 动态查询数据库表中的数据 案例4.11 SQL Server服务的开启和断开 本章小结 第5章 水晶报表和打印处理技术 案例5.1 水晶报表中使用SQL Server数据库 案例5.2 利用水晶报表分组统计数据库中的数据 案例5.3 图表在水晶报表中的应用 案例5.4 控制水晶报表的字段个数、字体颜色及记录显示 案例5.5 水晶报表中子报表的应用 案例5.6 利用打印组件实现窗体数据的打印 案例5.7 打印输出图形图像 案例5.8 调用Excel打印表格数据 案例5.9 调用Word打印表格数据 本章小结 第6章 文件及注册表处理技术 案例6.1 文件的动态创建与删除 案例6.2 文件夹的动态创建与删除.. 案例6.3 文件的打开和保存 案例6.4 文件的加密和解密 案例6.5 文件的动态查找 案例6.6 动态复制多个文件 案例6.7 动态获取系统当前目录及程序当前目录 案例6.8 文件属性的查看与修改 案例6.9 桌面图标和驱动器的显示与隐藏 案例6.10 禁示修改IE浏览器的主页 本章小结 第7章 硬件处理技术 案例7.1 计算机的注销、关闭和重新启动 案例7.2 任务栏和“开始”按钮的显示与隐藏 案例7.3 声卡的检测及PC喇叭的控制 案例7.4 动态控制光驱的打开和关闭 案例7.5 鼠标的控制 案例7.6 设置系统默认输入法 案例7.7 锁定计算机 案例7.8 屏幕保护程序的启动 案例7.9 利用串口进行通信 本章小结 第8章 数据结构与算法 案例8.1 单向链表数据结构 案例8.2 堆栈数据结构 案例8.3 队列数据结构 案例8.4 冒泡排序和选择排序 案例8.5 希尔排序和插入排序 案例8.6 搬砖问题算法 案例8.7 爱因斯坦的阶梯问题算法 案例8.8 求最大公因子的欧几里德算法 案例8.9 IP地址的合法性检查算法 案例8.10 由旧身份证自动生成新身证算法 本章小结 第9章 网络开发技术 案例9.1 动态获取本机名和IP地址 案例9.2 动态获取本机网卡地址 案例9.3 动态修改本机IP地址 案例9.4 网络连接和传输信息 案例9.5 网络在线检测 案例9.6 网络在线浏览器 案例9.7 HTTP动态下载 案例9.8 动态查看网页标题信息 案例9.9 电子邮件的发送 本章小结 第10章 Web程序开发技术 案例10.1 利用AdRotator控件随机显示广告图像 案例10.2 利用Calendar控件动态查询系统日期 案例10.3 会员登录系统 案例10.4 利用Application对象实现网站计数器 案例10.5 利用Session对象实现留言板 案例10.6 动态上传图像并显示 案例10.7 利用控件显示数据库表中的数据 案例10.8 分页显示数据库表中的数据 案例10.9 动态选择、编辑、删除数据库表中的数据 本章小结 第11章 应用程序的打包 案例11.1 Windows应用程序的打包 案例11.2 Web应用程序的打包 案例11.3 带有数据库文件的应用程序的打包 案例11.4 带有特定文件的应用程序打包 案例11.5 带有注册表信息的应用程序打包 本章小结 第12章 消费管理系统 12.1 系统总体设计 12.2 系统数据库设计 12.3 实例效果 12.4 消费管理登录系统 12.5 消费管理系统主界面 12.6 消费管理系统的查询功能 12.7 消费信息管理功能 12.8 消费信息报表输出界面 本章小结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值