【问题标题】:UWP EasClientDeviceInformation.SystemFirmwareVersion always returns 0UWP EasClientDeviceInformation.SystemFirmwareVersion 始终返回 0
【发布时间】:2018-12-10 15:08:14
【问题描述】:

我正在尝试使用 EasClientDeviceInformation 类在 UWP(通用 Windows 平台)中获取有关桌面或移动设备的信息。在阅读有关 SystemFirmwareVersion 或 SystemHardwarVersion 的Documentation 时,它会指出“从注册表中检索 SystemFirmwareVersion 属性。如果由于任何原因无法读取注册表,则 SystemFirmwareVersion 作为空字符串返回。” 在我的情况下,它总是返回一个空字符串。在阅读有关 UWP 的更多信息时,我发现 UWP 应用程序在沙盒模式下运行,因此首先无法访问注册表。

那么这种方法是如何从设备中获取信息的呢?

有没有办法让 UWP 读取注册表项并将结果输入所需的方法以使其工作?

如果可以访问注册表(只读),是否可以检索有关设备的更多信息(如 CPU 型号、RAM 量、GPU 型号等),因为我知道默认情况下 UWP 不能可以访问这些信息吗?

注意:此应用仅供个人在有限的设备上使用,因此不需要微软的验证,主要是在 Surface pro 和 Windows 手机上。

【问题讨论】:

    标签: uwp windows-10-universal firmware


    【解决方案1】:

    EasClientDeviceInformation 中的许多属性取决于设备制造商是否正确设置它们,或者取决于特定类型的设备(特别是,SystemFirmwareVersion 可能只出现在 Windows Phone 上,而不是 Windows 桌面上,甚至在某些情况下可能会丢失)。

    “UWP 应用程序 [缺乏] 访问注册表”的说法不正确“UWP 无法访问 [CPU、GPU 等] 的说法也不正确。”

    根据政策,UWP 应用程序不支持注册表 API,因为它们存在可支持性问题(注册表项主要是操作系统的实现细节,并不意味着应用程序依赖),但如果您调用注册表,您肯定可以访问直接使用 API。此外,某些注册表项受安全 ACL 保护,因此您无法读取和/或写入它们。

    您可以使用 Windows.Devices.EnumerationDirectX 等 API 或各种 Win32 API 来获取有关系统的信息。

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2017-09-05
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多