网站运营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 ();
}
}
}