我正在寻找一种方法来检测我的C#应用程序是否在Windows 10上运行。
我曾希望Environment.OSVersion
会做的伎俩,但这似乎返回Version
的6.3.9600.0
在Windows 8.1和Windows 10。
如其他解决方案,这似乎并没有的Windows 8和Windows 10之间进行区分两种。
有什么建议?
为什么我需要这样做?
因为我使用WinForms WebBrowser控件来托管OAuth页面,该页面在较旧的IE版本中崩溃并燃烧(我的应用程序连接到用户的Nest帐户...)。
默认情况下,WebBrowser控件模拟IE7。使用注册表项,您可以告诉它模拟主机PC上安装的IE的最新版本。然而,该工作值高达8.1的Windows(和Windows 10的预发行版)无法在Windows 10的最终版本。
如果查看注册表,则会发现环境名称:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
例如,我的产品名称是Windows 10 Home
:
通过此代码,您可以获得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");
}
注意:添加using Microsoft.Win32;
到您的用法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句