在Universal App中检测CPU是否为64位(Windows)

时间:2015-04-21 12:20:39

标签: c# xaml windows-8 windows-phone-8.1 win-universal-app

我有一个使用PlayReady DRM保护视频的通用应用。 PlayReady的问题在于它仅在应用程序构建体系结构与CPU体系结构匹配时才起作用(例如:ARM构建在ARM上,x64在64位CPU上,x86在32位CPU上)。这是设计(出于某种原因)。

所以问题是,如果用户拥有64位CPU并运行32位操作系统。在这种情况下,他从商店获得x86版本(因为32位操作系统),但由于64位CPI与X86版本不匹配,PlayReady无法正常工作。在这种情况下,我想显示一条消息(而不是只是无法播放视频)。

我可以检测到轻松检测x86构建(通过添加条件符号),但如何检测CPU是否为64位?完整的.NET没有像System.Environment.Is64BitOperatingSystem那样的东西。

1 个答案:

答案 0 :(得分:2)

您可以在Windows应用商店应用中进行P / Invoke Win32的GetNativeSystemInfo(有关P / Invoke签名here的更多信息);它返回一个包含处理器架构的结构 我无法找到有关它在x64机器x64机器场景中返回的内容的任何信息,而且我手边没有这样的机器来测试它,但值得一试。< / p>