在 .NET Framework 中,為了獲得作業系統版本,您可以使用 Environment.OSVersion,其中的 Major 和 Minor 值將告訴您 Windows 的版本(即 6.1 = Windows 7,10.0 = Windows 10)。 盡管 Windows 11 已經發布(開發和測驗渠道)一個多月了,但是檔案還沒有更新,沒有提到如何檢測 Windows 11。
對于 Windows API 來說,GetVersion 已經被永遠廢棄,甚至版本助手 API 也只能達到IsWindows10OrGreater。 是否有一個簡單的檢查來找出主要的Windows版本,特別是Windows 11? 有人提出了類似的問題,但卻是針對Delphi的(如何使用Delphi 10.3.3檢測Windows 11),公認的答案都是黑客。 為什么微軟提供一個簡單的API來直接回傳當前的系統版本就這么難呢? GetVersion不應該被廢棄。
uj5u.com熱心網友回復:
這很可能并不完美,但這是我一直在使用的一個變通方法:
Environment.OSVersion.Version.Build >= 22000。
Windows 11從build number 22000開始,Windows 10大約在build number 21390結束,因此據我所知,這將只檢測Windows 11的build。
不過,首先要檢查它是否是一個 Windows 系統,其他作業系統可能有更高的構建號。
uj5u.com熱心網友回復:
你可以使用RtlGetVersion()在ntdll .dll中,它不受作業系統兼容性表現的影響,就像GetVersion/Ex()和其他類似的API那樣(尤其是因為目前還沒有為Windows 11定義supportedOS GUID的情況下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/320303.html
標籤:
