C#實現(xiàn)判斷操作系統(tǒng)是否為Win8以上版本
1、利用C#獲取OS的版本號
(1) 原理說明
Environment類的OSVersion屬性是一個OperatingSystem類型的對象,OperatingSystem類表示有關(guān)操作系統(tǒng)的信息,如版本和平臺標(biāo)識符。OperatingSystem類的Version屬性,描述了操作系統(tǒng)的主版本號、次版本號、內(nèi)部版本號和修正版本號,所以可以使用Environment.OSVersion.Version來獲取操作系統(tǒng)的版本信息。
(2) 具體代碼
using System;
namespace GetOSVersionExp
{
class Program
{
static void Main(string[] args)
{
Version currentVersion = Environment.OSVersion.Version;
//OS版本號
Console.WriteLine("Major:{0}", currentVersion.ToString());
//OS版本號的主要版本號
Console.WriteLine("Major:{0}", currentVersion.Major);
//OS版本號的次要版本號
Console.WriteLine("Minor:{0}", currentVersion.Minor);
//OS版本號的內(nèi)部版本號
Console.WriteLine("Build:{0}", currentVersion.Build);
//OS版本號的修訂部分的值
Console.WriteLine("Revision:{0}", currentVersion.Revision);
//OS版本號的修訂號的高16位
Console.WriteLine("MajorRevision:{0}", currentVersion.MajorRevision);
//OS版本號的修訂號的低16位
Console.WriteLine("MinorRevision:{0}", currentVersion.MinorRevision);
}
}
}
(3) 程序執(zhí)行結(jié)果

(4) 補充說明
版本號由二至四個部分組成:主要版本號、次要版本號、內(nèi)部版本號和修訂號。
1.主要版本號和次要版本號是必選的;
2.內(nèi)部版本號和修訂號是可選的,但是如果定義了修訂號部分,則內(nèi)部版本號就是必選的。
3.所有定義的組件都必須是大于或等于零的整數(shù)。
更多關(guān)于版本號的信息,請訪問:http://msdn.microsoft.com/zh-cn/library/system.version.aspx
關(guān)于Windows的版本信息,可以訪問:Operating System Version
2、利用反射獲取當(dāng)前正在運行的程序的版本信息
下面的代碼演示利用反射技術(shù)獲取當(dāng)前正在運行的程序的版本信息。
using System;
using System.Reflection;
namespace GetOSVersionExp
{
class Program
{
static void Main(string[] args)
{
Assembly assem = Assembly.GetExecutingAssembly();
AssemblyName assemName = assem.GetName();
Version ver = assemName.Version;
Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
}
}
}
執(zhí)行結(jié)果如下圖所示:

代碼中利用Assembly類的GetExecutingAssembly()方法獲取包含當(dāng)前正在執(zhí)行的代碼的程序集,再使用GetName()方法獲取程序集的名稱(使用AssemblyName 類的對象來表示),并通過訪問AssemblyName 的屬性Version得到程序集的版本信息。使用Assembly 類需要添加引用“using System.Reflection;”。
3 利用C#判斷當(dāng)前操作系統(tǒng)是否為Win8系統(tǒng)
直接上代碼:
using System;
namespace GetOSVersionExp
{
class Program
{
static void Main(string[] args)
{
Version currentVersion = Environment.OSVersion.Version;
Version compareToVersion = new Version("6.2");
if (currentVersion.CompareTo(compareToVersion) >= 0)
{//win8及其以上版本的系統(tǒng)
Console.WriteLine("當(dāng)前系統(tǒng)是WIN8及以上版本系統(tǒng)。");
}
else
{
Console.WriteLine("當(dāng)前系統(tǒng)不是WIN8及以上版本系統(tǒng)。");
}
}
}
}
運行程序

因為本機為WIN7系統(tǒng),所以程序運行結(jié)果為“當(dāng)前系統(tǒng)不是WIN8及以上系統(tǒng)”。
此方法在判斷系統(tǒng)是否是高于或低于某個版本的系統(tǒng)時適用,若要準(zhǔn)確判斷當(dāng)前系統(tǒng)是什么類型可以參考《C#判斷操作系統(tǒng)類型總結(jié)》的介紹。
好了,就到這里。
相關(guān)文章
C#實現(xiàn)讀取匿名對象屬性值的方法示例總結(jié)
這篇文章主要介紹了C#實現(xiàn)讀取匿名對象屬性值的方法,結(jié)合實例形式總結(jié)分析了C#通過反射、轉(zhuǎn)換等方法讀取匿名對象屬性值的相關(guān)操作技巧,需要的朋友可以參考下2020-03-03
WPF實現(xiàn)類似ChatGPT逐字打印效果的示例代碼
前一段時間ChatGPT類的應(yīng)用十分火爆,這類應(yīng)用在回答用戶的問題時逐字打印輸出,像極了真人打字回復(fù)消息,本文就來利用WPF模擬一下這種逐字打印的效果吧2023-08-08

