首页 > 编程 > .NET > 正文

使用 Visual C# .NET 检查 Windows 版本

2024-07-10 13:00:16
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 感谢jackyoung02(冷雨夜)!!!!




    如何:使用 visual c# .net 检查 windows 版本 (q304283)

    --------------------------------------------------------------------------------

    本文讨论的内容属于:
    microsoft visual c# .net (2002)

    --------------------------------------------------------------------------------

    如果您想要参考 microsoft visual basic .net 版本的文章,请参考q304289。

    如果您想要参考 microsoft visual c++ .net 版本的文章,请参考q307394。

    本文内容:

    概述
    需求
    获取 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 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 ();
    }
    }
    }



    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表