【问题标题】:How to detect if an app is running on Windows RT or Windows 8 Pro?如何检测应用程序是否在 Windows RT 或 Windows 8 Pro 上运行?
【发布时间】:2014-05-02 02:32:14
【问题描述】:

我正在为 Windows 8 开发应用程序,但我想知道是否有办法知道 Windows 8 的版本,因为如果是 Windows 8 RT,我希望应用程序只显示 2 个选项,例如,但如果该应用在 Windows 8 Pro 上运行我希望该应用具有全部功能。

我知道当您在 Visual Studio 中创建包时,您可以为应用程序选择所需的类型或架构,但我不知道在使用 HTML5 的应用程序的情况下使用 C# 或 JavaScript 是否可以检测到架构了解 Windows 8 的版本。

【问题讨论】:

  • C# 可以读取注册表。您应该能够从注册表中获取操作系统版本。我不知道JavaScript是否有办法。

标签: c# javascript windows-8.1


【解决方案1】:

我认为您将架构和操作系统版本的含义混为一谈。
您要查找的操作系统版本实际上是 Windows 版,它与 CPU architecture 无关。
至于你的问题,我想你正在寻找这个:

using System.Management;
var name = (from x in new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<ManagementObject>()
                      select x.GetPropertyValue("Caption")).FirstOrDefault();
return name != null ? name.ToString() : "Unknown";

取自here

关于 JavaScript,我很确定至少目前无法知道版本。

【讨论】:

  • 请注意,WMI 对几乎所有事情都非常挑剔。您需要成为管理员,您需要权利,有时它会无缘无故地不起作用,行星必须对齐等等......等等......根据经验,我真的建议找到 WMI 之外的替代选项。
【解决方案2】:

不知道RT部分有没有通过,但是这个博客有一个使用C#中的kernel32.dll提取操作系统信息的例子。

chsarp411 Tutorial

Stackoverflow Posting

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2012-08-14
    • 1970-01-01
    相关资源
    最近更新 更多