C#获取操作系统名称Windows 8.1

时间:2015-03-22 12:48:57

标签: c# operating-system

我想检查运行窗口是Windows 8还是Windows 8.1。 使用Windows重大检查

6.2 - >赢8

6.3 - >赢8.1

这不起作用,因为随着Windows 8.1的发布,GetVersion API的行为已经改变了它将为操作系统版本返回的值。

我怎样才能正确使用版本?

2 个答案:

答案 0 :(得分:2)

您可以在Windows的注册表中找到该信息。例如,如果您已安装Windows 8.1专业版并执行以下行:

 using Microsoft.Win32;     
 //...

 var windowsName= Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "ProductName","");
 var version= Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "CurrentVersion", "");
 var build= Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "CurrentBuild", "");

您将分别获得Windows 8.1 Pro6.39600

此外,您可以使用WMI获取Windows名称,请查看此post中的答案:

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;
}

答案 1 :(得分:2)

试试这个

它汇总主要版本没有后跟次要版本 根据{{​​3}}

,有很多方法可以使用
string ver = Environment.OSVersion.Version.Major + "." + Environment.OSVersion.Version.Minor;

,输出为:

6.2