我想检查运行窗口是Windows 8还是Windows 8.1。 使用Windows重大检查
6.2 - >赢8
6.3 - >赢8.1
这不起作用,因为随着Windows 8.1的发布,GetVersion API的行为已经改变了它将为操作系统版本返回的值。
我怎样才能正确使用版本?
答案 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 Pro
,6.3
和9600
。
此外,您可以使用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