我正在尝试使用EasClientDeviceInformation类来获取有关UWP(通用Windows平台)中的台式机或移动设备的信息。在阅读关于Documentation的有关SystemFirmwareVersion或SystemHardwarVersion的信息时,它会指出“从注册表中检索了SystemFirmwareVersion属性。如果由于某种原因无法读取注册表,则将SystemFirmwareVersion作为空字符串返回。” 在我的情况下,它总是返回一个空字符串。在阅读有关UWP的更多信息时,我发现UWP应用程序以沙盒模式运行,因此首先无法访问注册表。
那么该方法如何能够从设备获取其信息?
是否可以让UWP读取注册表项并将结果提供给所需的方法以使其起作用?
如果可以访问注册表(仅用于读取),则有可能检索有关该设备的更多信息(例如CPU模型,RAM数量,GPU模型等),因为我知道默认情况下UWP不能可以访问此信息?
注意:此应用将在有限的设备上用于个人使用,因此它不需要Microsoft的验证,主要是在Surface Pro和Windows手机上。
答案 0 :(得分:0)
EasClientDeviceInformation
中的许多属性取决于设备制造商是否正确设置它们,或者取决于特定类型的设备(特别是SystemFirmwareVersion
可能仅在Windows Phone上存在,不是Windows桌面,在某些情况下甚至可能不存在。
“ UWP应用程序[无法]访问注册表” 不是事实,“ UWP无法访问[CPU,GPU等]也不是事实。” < / em>
根据政策,UWP应用程序不支持注册表API,因为它们存在可支持性问题(注册表项主要是操作系统的实现详细信息,并不意味着应用程序要依赖),但是如果您调用注册表,您肯定可以访问直接使用API。此外,某些注册表项受安全ACL的保护,因此您无法读取和/或写入它们。
您可以使用Windows.Devices.Enumeration
,DirectX
之类的API或各种Win32 API来获取有关系统的信息。