c# – 如何检测我的应用程序是否在Windows 10上运行

我正在寻找一种方法来检测我的C#应用​​程序是否在Windows 10上运行。

我曾经希望Environment.OSVersion能够做到这一点,但这似乎在Windows 8.1和Windows 10上返回了6.3.9600.0版本。

其他解决方案,如this似乎也不区分Windows 8和Windows 10。

有什么建议么?

为什么我需要这样做?

因为我正在使用WinForms WebBrowser控件来托管在旧版本的IE版本中崩溃和烧录的OAuth页面(我的应用程序连接到user’s Nest account …)。

默认情况下,WebBrowser控件模拟IE7。使用注册表项,您可以告诉它来模拟主机PC上安装的最新版本的IE。但是,直到Windows 8.1(和Windows 10的预发行版)的value that worked在Windows 10的最终版本中不起作用。

最佳答案
如果你看注册表,你会发现环境名称:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName

例如我的产品名称是Windows 10 Home:

Registry

有了这个代码,如果它是Windows 10:

 static bool IsWindows10()
 {
     var reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");

     string productName = (string)reg.GetValue("ProductName");

     return productName.StartsWith("Windows 10");
 }

注意:使用Microsoft.Win32添加;给你的使用。

转载注明原文:c# – 如何检测我的应用程序是否在Windows 10上运行 - 代码日志