Windows 8 在WinRT中,是否可以请求当前操作系统版本?

Windows 8 在WinRT中,是否可以请求当前操作系统版本?,windows-8,Windows 8,使用WinRT可以确定当前操作系统是否: Windows RT Windows8内核 Windows8Pro windows8ent 可能吗? 请注意,问题(http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp)看起来是重复的,但这是发布前的问题。在整个发布过程中,API的大部分内容都发生了更改。这个问题的答案是不可能的。这仍然是真的吗?当然不是。如果可以做到这一点,这并不容易,

使用WinRT可以确定当前操作系统是否:

  • Windows RT
  • Windows8内核
  • Windows8Pro
  • windows8ent
  • 可能吗?


    请注意,问题(http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp)看起来是重复的,但这是发布前的问题。在整个发布过程中,API的大部分内容都发生了更改。这个问题的答案是不可能的。这仍然是真的吗?当然不是。

    如果可以做到这一点,这并不容易,而且必须从您可以获得的有关运行系统的数据中推断出来。不幸的是,文件对此并不清楚。例如,在Metro样式的应用程序下允许使用

    但是,GetNativeSystemInfo的文档链接到如何获取使用多个API的操作系统版本,这些API不在Metro风格应用程序列表中,但示例仍在Metro文档中。目前还不清楚ARM处理器上会出现什么

    底线是,这是一种糟糕的方法,必然会导致代码的脆弱性。我的建议是避免尝试这样做。

    看看以下内容:


    通过使用devices API获取低级系统组件(如HAL)的驱动程序版本号,可以获取操作系统版本号,但存在不正确的风险


    有更多的信息和示例代码(公开,我写了那篇文章和代码)

    是的,使用webview似乎是一种可靠且非常快速的获取正在运行的处理器的方法。要确定支持还是企业。不,我找不到办法

    但是,如果您对如何确定处理器和从那里开始感兴趣?
    在这里查看我的答案:

    重复问题:不,这是发布前的问题!你确定吗?答案还是一样的吗?这不是告诉你关于当前软件包,而不是平台吗?是的,是关于当前软件包。。。大多数情况下是“中立”的,不是手臂或其他特定的东西……我同意,但仍然想知道——我打赌有办法
    var architecture = packageId.architecture;
    
    
    var package = Windows.ApplicationModel.Package.current;
    var packageId = package.id;
    var version = packageId.version;
    
    var output = [ "Name: \"" + packageId.name + "\"",
               "Version: " + version.major + "." + version.minor + "." 
                           + version.build + "." + version.revision,
               "Architecture: " + packageId.architecture,
               "ResourceId: \"" + packageId.resourceId + "\"",
               "Publisher: \"" + packageId.publisher + "\"",
               "PublisherId: \"" + packageId.publisherId + "\"",
               "FullName: \"" + packageId.fullName + "\"",
               "FamilyName: \"" + packageId.familyName + "\"",
               "IsFramework: " + package.isFramework ];