如何使用C#4.0检测Windows 8操作系统?

Raj*_*ian 23 .net c# windows winforms

我必须在C#Windows应用程序中检测Windows 8操作系统并进行一些设置.我知道我们可以使用Environment.OSVersion,但是如何检测Windows 8?

提前致谢.

Age*_*ire 34

Version win8version = new Version(6, 2, 9200, 0);

if (Environment.OSVersion.Platform == PlatformID.Win32NT &&
    Environment.OSVersion.Version >= win8version)
{
    // its win8 or higher.
}
Run Code Online (Sandbox Code Playgroud)

Windows 8.1及更高版本的更新:

好吧,伙计们,在我看来,这段代码已被微软本身标记为弃用.我在此处留下链接,以便您可以阅读更多相关信息.

简而言之,它说:

对于Windows 8及更高版本,总是会有相同的版本号(6,2,9200,0).而不是寻找Windows版本,去寻找你试图解决的实际功能.

  • 在我的Windows应用商店应用中找不到OSVersion,找不到Environment.OSVersion,找不到PlatformID.因此,对于Windows应用商店应用,这不起作用.坏. (2认同)
  • @Tertium问题中没有Windows Store标记. (2认同)

Asi*_*sik 13

Windows 8或更新版本:

bool IsWindows8OrNewer()
{
    var os = Environment.OSVersion;
    return os.Platform == PlatformID.Win32NT && 
           (os.Version.Major > 6 || (os.Version.Major == 6 && os.Version.Minor >= 2));
}
Run Code Online (Sandbox Code Playgroud)

  • 因为我在写答案时并没有意识到这些,并且在您使用这些答案提供答案后不久.你的答案更好,但我把我作为另一种选择. (2认同)