Win8.1和Win8具有相同的操作系统版本。我们如何检查当前操作系统是Win8还是Blue? Environment.OSVersion给了我们相同的结果:
Environment.OSVersion 6.2.9200.0
Environment.OSVersion.Version 6.2.9200.0
Environment.OSVersion.Version.Major 6
Environment.OSVersion.Version.Minor 2
答案 0 :(得分:19)
Windows 8.1将lie to you并告诉您它是Window 8.更改谎言需要编辑程序中嵌入的清单,以便Windows知道您不想被骗。 Project + Add New Item,选择Application Manifest File项目模板。将此措辞复制粘贴到<application>
元素下方:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
</application>
</compatibility>
答案 1 :(得分:2)
我在此注册表项下找到了一个解决方案
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
答案 2 :(得分:0)
由于我无法让Hans的解决方案正常工作,我创建了一个不同的解决方案:
bool _IsWindows8Point1OrGreater = Type.GetType("Windows.UI.Xaml.Controls.Flyout, Windows.UI.Xaml, ContentType=WindowsRuntime", false) != null;
答案 3 :(得分:0)
对于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