我是一名 ASP.NET 程式員,專註於 B/S 項目開發。累計文章閱讀量超過一千萬,我的博客主頁地址:https://www.itsvse.com/blog_xzz.html 我們都知道在C#中可以通過Environment.OSVersion來判斷當前操作系統,下麵是操作系統和主次版本的對應關係 ...
我是一名 ASP.NET 程式員,專註於 B/S 項目開發。累計文章閱讀量超過一千萬,我的博客主頁地址:https://www.itsvse.com/blog_xzz.html
我們都知道在C#中可以通過Environment.OSVersion來判斷當前操作系統,下麵是操作系統和主次版本的對應關係:
操作系統 | 主版本.次版本 |
Windows 10 | 10.0* |
Windows Server 2016 Technical Preview | 10.0* |
Windows 8.1 | 6.3* |
Windows Server 2012 R2 | 6.3* |
Windows 8 | 6.2 |
Windows Server 2012 | 6.2 |
Windows 7 | 6.1 |
Windows Server 2008 R2 | 6.1 |
Windows Server 2008 | 6 |
Windows Vista | 6 |
Windows Server 2003 R2 | 5.2 |
Windows Server 2003 | 5.2 |
Windows XP 64-Bit Edition | 5.2 |
Windows XP | 5.1 |
Windows 2000 | 5 |
我們可以用Environment.OSVersion來判斷當前操作系統
public static bool IsWin7 => Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor == 1; public static bool IsWin10 => Environment.OSVersion.Version.Major == 10;
但是,當你在win10操作系統上使用這個函數是會得到這樣的結果:6.2.9200.0,而不是我們期待的10.0.***
問題是Win10下獲取的值可能不是10,說明地址: https://docs.microsoft.com/zh-cn/windows/win32/sysinfo/operating-system-version
For applications that have been manifested for Windows 8.1 or Windows 10. Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows.
現在需要一個程式清單文件
然後把下麵的註釋去掉,就可以返回10.0.***了
還有另外一種方法如下。
利用C#判斷當前操作系統是否為Win8系統(此方法不需要添加程式清單文件)
代碼:
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及其以上版本的系統 Console.WriteLine("當前系統是WIN8及以上版本系統。"); } else { Console.WriteLine("當前系統不是WIN8及以上版本系統。"); } } } }
(完)