我们如何检查当前操作系统是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
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