我们如何检查当前操作系统是win8还是蓝色

本文关键字:操作系统 win8 蓝色 何检查 检查 我们 | 更新日期: 2023-09-27 18:20:30

Win8.1和Win8具有相同的操作系统版本。我们如何检查当前的操作系统是Win8还是Blue?Environment.OSV版本给了我们同样的结果:

Environment.OSVersion 6.2.9200.0 Environment.OSVersion.Version 6.2.9200.0 Environment.OSVersion.Version.Major 6 Environment.OSVersion.Version.Minor 2

我们如何检查当前操作系统是win8还是蓝色

Windows 8.1会对你撒谎,告诉你这是Window 8。更改谎言需要编辑嵌入程序中的清单,以便Windows知道你不想被欺骗。Project+Add New Item,选择应用程序清单文件项目模板。将此措辞复制粘贴到<application>元素下方:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
    <application> 
        <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    </application> 
</compatibility>

我在这个注册表项下找到了一个解决方案

HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Windows NT'CurrentVersion

由于我无法让Hans的解决方案工作,我创建了一个不同的解决方案:

bool _IsWindows8Point1OrGreater = Type.GetType("Windows.UI.Xaml.Controls.Flyout, Windows.UI.Xaml, ContentType=WindowsRuntime", false) != null;

在Win8.1的情况下,版本为6.3。*

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx

如果您使用GetVersionEx()api[来自kernel32.dll]来获取Win8.1版本,则返回的值将为6.2.*,而版本值应为6.3.*

解决方案是,您需要将程序集清单添加到.net exe或os.dll来声明symhelp将在windows 8.1上运行,这可能会使.net System.Environment.OSVersion.Version函数正确运行。

然而,您需要在多个操作系统上进行测试。

http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724429(v=vs.85).aspx