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

visual|window

感谢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 ();
}
}
}

时间: 2024-09-24 06:39:58

使用 Visual C# .NET 检查 Windows 版本的相关文章

模块"XX"可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

我的系统是win7 64位的 装了绿色版VC6.0之后运行某个MFC程序系统提示差msvcrtd.dll,,网上下载了一个,按网上的说法,放在C:\Windows\System32下后 cmd运行  regsvr32 msvcrtd.dll 即可.但系统又提示"msvcrtd.dll可能与您正在运行的Windows版本不兼容.检查该模块是否与regsvr32.exe的x86或x64版" 无奈,找了好多资料终于发现  要把这个文件放在C:\Windows\SysWOW64下. 按照这个方

安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege

安装mysql 下载mysql-5.6.26-winx64,并解压到:D:\Installed\mysql-5.6.26-winx64\mysql-5.6.26-winx64 创建data目录 创建my.ini,内容如下: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D://Installed//mysql-5.6.26-win

转帖:PHP4(windows版本)中的COM函数

window|函数 这几天一直在写excel转化成mysql,发现一篇文章,搜一下phpx论坛,没有这个帖子,把它转帖如下: PHP4(windows版本)中的COM函数 介绍 内置于PHP4里的COM函数对于我们在win32环境下开发程序是相当有吸引力的,但是至今仍没有多少相关的技术文档.本文将以三个例子分 别处理 MS office 2000 Word . Excel . Adobe Distiller 来说明如何在PHP中使用COM函数. COM技术是由Microsoft在几年前提出并开发

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

win32-关于 visual studio 2010 创建 windows 应用程序问题

问题描述 关于 visual studio 2010 创建 windows 应用程序问题 想用2010创建 windows 应用程序,选项 是否生成文件清单 改成否也不行.总是出现 1>------ 已启动全部重新生成: 项目: Ex1-03, 配置: Debug Win32 ------ 1>生成启动时间为 2015/7/4 22:47:32. 1>_PrepareForClean: 1> 正在删除文件"DebugEx1-03.lastbuildstate".

Oracle安装检查操作系统版本必须是5.0 5.1的解决办法

我在 oracle 10g R2 for windows 7 64bit 的安装时候发现了这个问题.经过验证可以解决问题. 这算是oracle的一个小bug 在检查操作系统版本的时候 windows-6.1 没有维护进去. 找到oracle安装文件中的 "oraparam.ini" 文件在里面 合适位置添加以下一段 (里面有一段和以下文字类似就是6.1换成6.0 放在6.0的后面即可) [Windows-6.1-required] #Minimum display colours fo

PHP4(windows版本)中的COM函数_php基础

PHP4(windows版本)中的COM函数 这几天一直在写excel转化成mysql,发现一篇文章,搜一下phpx论坛,没有这个帖子,把它转帖如下: PHP4(windows版本)中的COM函数 介绍 内置于PHP4里的COM函数对于我们在win32环境下开发程序是相当有吸引力的,但是至今仍没有多少相关的技术文档.本文将以三个例子分 别处理 MS office 2000 Word . Excel . Adobe Distiller 来说明如何在PHP中使用COM函数. COM技术是由Micro

各个Windows版本所占流量的比例

各个Windows版本所占流量的比例(腾讯科技配图) 据国外http://www.aliyun.com/zixun/aggregation/31646.html">媒体报道,市场调研机构Chitika Insights发布的最新数据显示,Windows 8在面世两周之后占据了美国和加拿大整个Windows网络流量的2.3%.与此相比,苹果Mac OS X Mountain Lion发布仅48小时后就占据了美国和加拿大整个OS X网络流量的3.2%.对于微软来说,这绝对是个好消息. 当然很多

2种windows版本查看方法

  windows版本查看方法一:从电脑系统中查看 1.在Windows电脑桌面的"计算机"上鼠标右键,然后点击"属性",如下图所示. 注:如果是Win8电脑,则为在"这台电脑"图标上鼠标右键,然后选择属性. 2.接下就可以打开系统界面了,在这里就可以找到Windows版本,如下图所示. 图中小编电脑是Windows 7系统,Windows版本为Win7旗舰版 Service Pack 1(SP1). windows版本查看方法二:命令查看法 1