深入C#判断操作系统类型的总结详解

Windows操作系统的版本号一览






























































操作系统  PlatformID  主版本号  副版本号
 Windows95  1  4  0
 Windows98  1  4  10
 WindowsMe  1  4  90
 WindowsNT3.5  2  3  0
 WindowsNT4.0  2  4  0
 Windows2000  2  5  0
 WindowsXP  2  5  1
 Windows2003  2  5  2
 WindowsVista  2  6  0
 Windows7  2  6  1
 Windows8      

获取操作系统信息的相关类或属性


代码如下:

//获取系统信息
System.OperatingSystem osInfo = System.Environment.OSVersion;
//获取操作系统ID
System.PlatformID platformID = osInfo.Platform;
//获取主版本号
int versionMajor = osInfo.Version.Major;
//获取副版本号
int versionMinor = osInfo.Version.Minor;

System.PlatformID枚举值及其含义


代码如下:

Win32S  操作系统为 Win32s(Win32 子集)类型。
Win32s 是运行于 Windows 16 位版本上的层,它提供对 32 位应用程序的访问。
Win32Windows  操作系统为 Windows 95 或较新的版本。
Win32NT 操作系统为 Windows NT 或较新的版本。
WinCE   操作系统为 Windows CE。
Unix    操作系统为 Unix。
Xbox    开发平台为 Xbox 360。

示例


代码如下:

//C#判断操作系统是否为Windows98
public static bool IsWindows98
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() != "2222A");
    }
}
//C#判断操作系统是否为Windows98第二版
public static bool IsWindows98Second
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32Windows) && (Environment.OSVersion.Version.Minor == 10) && (Environment.OSVersion.Version.Revision.ToString() == "2222A");
    }
}
//C#判断操作系统是否为Windows2000
public static bool IsWindows2000
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 0);
    }
}
//C#判断操作系统是否为WindowsXP
public static bool IsWindowsXP {
    get {
        return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 1);
    }
}
//C#判断操作系统是否为Windows2003
public static bool IsWindows2003
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 5) && (Environment.OSVersion.Version.Minor == 2);
    }
}
//C#判断操作系统是否为WindowsVista
public static bool IsWindowsVista
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 0);
    }
}
//C#判断操作系统是否为Windows7
public static bool IsWindows7
{
    get
    {
        return (Environment.OSVersion.Platform == PlatformID.Win32NT) && (Environment.OSVersion.Version.Major == 6) && (Environment.OSVersion.Version.Minor == 1);
    }
}
//C#判断操作系统是否为Unix
public static bool IsUnix
{
    get
    {
        return Environment.OSVersion.Platform == PlatformID.Unix;
    }
}

(0)

相关推荐

  • C#判断系统是32位还是64位的方法

    本文实例讲述了C#判断系统是32位还是64位的方法.分享给大家供大家参考.具体如下: public static int GetOSBit() { try { string addressWidth = String.Empty; ConnectionOptions mConnOption = new ConnectionOptions(); ManagementScope mMs = new ManagementScope(@"\\localhost", mConnOption);

  • C#中判断本地系统的网络连接状态的方法

    函数InternetGetConnectedState返回本地系统的网络连接状态. 语法: BOOL InternetGetConnectedState( __out LPDWORD lpdwFlags, __in DWORD dwReserved ); 参数: lpdwFlags[out] 指向一个变量,该变量接收连接描述内容.该参数在函数返回FLASE时仍可以返回一个有效的标记.该参数可以为下列值的一个或多个. 值 含义 INTERNET_CONNECTION_CONFIGURED0x40

  • C#遍历操作系统下所有驱动器的方法

    本文实例讲述了C#遍历操作系统下所有驱动器的方法.分享给大家供大家参考.具体分析如下: 这里先通过DriveInfo类的GetDrivers方法得到所有的驱动器信息,然后遍历,GetDrives()返回一个DriveInfo数组 DriveInfo[] drives = DriveInfo.GetDrives(); foreach (DriveInfo drive in drives) { Console.WriteLine("Drive: {0}", drive.Name); Con

  • C#实现控制Windows系统关机、重启和注销的方法

    本文实例讲述了C#实现控制Windows系统关机.重启和注销的方法.分享给大家供大家参考.具体分析如下: 使用.NET和C#.NET,我们可以对当前PC执行关机,重启,注销操作. NET Framework中,有一个命名空间System.Diagnostics具有所需的类和方法,从当前PC上运行.NET应用程序来执行这些操作. 请使用下面的按钮来执行关机,重启和注销. 下面是一个winform程序 //SHUT DOWN protected void btnShutDown_Click(obje

  • c#判断操作系统位数的示例分享

    在.net 4.5中,判断操作系统不用再写方法去判断了,有直接可以利用的属性了哦,如下所示:Environment.Is64BitProcess 属性.NET Framework 4.5 确定当前进程是否为 64 位进程. 当然如果是用的.net 4.5以前的童鞋也不必担心,同样也可以用以下的方法来实现判断系统位数. 复制代码 代码如下: private string Distinguish64or32System(){try{string addressWidth = String.Empty

  • C#返回当前系统所有可用驱动器符号的方法

    本文实例讲述了C#返回当前系统所有可用驱动器符号的方法.分享给大家供大家参考.具体如下: // The initial C# code for the "plain" WMI query was generated by // WMI Code Generator, Version 5.00, //http://www.robvanderwoude.com/wmigen.php using System; using System.Management; using System.Co

  • 深入C#判断操作系统类型的总结详解

    Windows操作系统的版本号一览 操作系统  PlatformID  主版本号  副版本号  Windows95  1  4  0  Windows98  1  4  10  WindowsMe  1  4  90  WindowsNT3.5  2  3  0  WindowsNT4.0  2  4  0  Windows2000  2  5  0  WindowsXP  2  5  1  Windows2003  2  5  2  WindowsVista  2  6  0  Windows

  • 基于Python的文件类型和字符串详解

    1. Python的文件类型 1. 源代码--直接由Python解析 vi 1.py #!/usr/bin/python print 'hello world' 这里的1.py就是源代码 执行方式和shell脚本类似: chmod +x 后,./1.py Python 1.py 2. 字节代码 Python源码文件经编译后生成的扩展名为pyc的文件 编译方法: [root@t1 py]# cat 2.py #!/usr/bin/python import py_compile py_compil

  • linux shell脚本对未定义变量的判断以及if的用法详解

    环境 操作系统:win10 虚拟机:centos7 需求 因为公司有个脚本,是用于启动程序的,但是每次启动都要手动做如下两个操作: ①先查询之前的进程ID ②杀死之前的,在启动新了 时间长了弄得我很烦躁,所以就琢磨下,把上面的的操作一起整合到启动脚本里去. 最开始我是这么写的: #!/bin/bash echo "ggjob-search..." pid=`ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|

  • pandas的Series类型与基本操作详解

    1 Series 线性的数据结构, series是一个一维数组 Pandas 会默然用0到n-1来作为series的index, 但也可以自己指定index( 可以把index理解为dict里面的key ) 1.1创造一个serise数据 import pandas as pd import numpy as np ​s = pd.Series([9, 'zheng', 'beijing', 128]) ​print(s) 打印 0 9 1 zheng 2 beijing 3 128 dtype

  • Go语音开发中常见Error类型处理示例详解

    目录 前言 透明错误处理策略 带来的问题 哨兵(Sentinel)错误处理策略 带来的问题 1.对errors.Error()的依赖 2.定义的错误类型会被公开 Error types 带来的问题 不透明错误处理策略(Opaque errors) 带来的问题 总结 前言 上文我们了解了 Error 在Go 中的设计理念.单从理念上来看, Error 的设计似乎有利于逻辑处理.但实际上,在开发过程中,我们还会遇到各种各样的困难.为了优化开发的流程,开发者们发明了很多处理 Error 的做法.今天我

  • Java枚举类型enum的详解及使用

     Java枚举类型enum的详解及使用 最近跟同事讨论问题的时候,突然同事提到我们为什么Java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大

  • Spring MVC自定义日期类型转换器实例详解

    Spring MVC自定义日期类型转换器实例详解 WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查询到数据,然后在jsp页面上格式化,最后展示给用户.但是这次不同,这次我纯属操作数据,没有页面.直接从数据库拿数据给它们返数据.它们给我传数据我持久化数据,说到这里一个小问题就默默的来了. 首先把问题还原一下吧(这是一个数据导出功能),下图中用红框圈

  • 判断颜色是否合法的正则表达式(详解)

    "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是6位或3位.要匹配一个3为是为了符合css颜色的简写规则: "#abc"=="#aabbcc" 注意:如果需要进行16位和10位的转换,比如将颜色值转成int存在数据库,如果是6位的颜色没问题,如果是3位的颜色就有问题了,因为当你取回来从10进制转为 16进制的时候,你不知道他应该是3位还是6位. 比如:#

  • 初学C++之自定义类型名简化详解

    说明:本人使用的是vc++ IDE:vs2013 我在自定义一些类时,有时会取一些很长的名字,但是这不利于使用,这个时候就可以使用类型名简化. class MathAddBBBB { }; using MAB = MathAddBBBB; 除了使用using之外,我们还可以使用typedef来定义: typedef MathAddBBBB mab; mab m(); 以上这篇初学C++之自定义类型名简化详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • java 用泛型参数类型构造数组详解及实例

    java 用泛型参数类型构造数组详解及实例 前言: 前一阵子打代码的时候突然想到一个问题.平时我们的数组都是作为一个参数传入方法中的,如果我们要想在方法中创建一个数组怎么样呢?在类型明确的情况下,这是没什么难度的.如果我们传入的参数是泛型类型的参数呢? public static <T> T[] creArray (T obj){ T[] arr = new T[10]; } 像上面这种用T来直接new数组的方法是错误的,会编译时出现一个:Cannot create a generic arr

随机推荐