我想检查运行的窗口是windows 8还是windows 8.1。使用Windows主检查
6.2->Win 8
6.3->Win 8.1
这不起作用,因为随着Windows 8.1的发布,GetVersion API的行为已经改变了它将为操作系统版本返回的值。
我怎样才能正确获得版本?
您可以在Windows的注册表中找到该信息。例如,如果您安装了Windows 8.1 Pro Edition并执行以下行:
using Microsoft.Win32;
//...
var windowsName= Registry.GetValue(@"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion", "ProductName","");
var version= Registry.GetValue(@"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion", "CurrentVersion", "");
var build= Registry.GetValue(@"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion", "CurrentBuild", "");
您将分别获得Windows 8.1 Pro
、6.3
和9600
。
你也可以使用WMI来获取Windows名称,请查看这篇文章中的答案:
public static string GetOSFriendlyName()
{
string result = string.Empty;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption FROM Win32_OperatingSystem");
foreach (ManagementObject os in searcher.Get())
{
result = os["Caption"].ToString();
break;
}
return result;
}
尝试这个
它插入主要版本no,然后是次要版本根据这里的环境类(系统),有很多方法可以使用
string ver = Environment.OSVersion.Version.Major + "." + Environment.OSVersion.Version.Minor;
输出为:
6.2