使用 WinRT 可以确定当前操作系统是否为:
- 视窗
- 视窗 8 核心
- 视窗 8 专业版
- 视窗 8 耳鼻喉科
是否可以?
请注意,问题(http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp)似乎是重复的,但它是一个预发布问题。在整个版本中,大部分 API 都发生了变化。这个问题的答案是不可能的。这仍然是真的吗?肯定不是。
使用 WinRT 可以确定当前操作系统是否为:
是否可以?
请注意,问题(http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp)似乎是重复的,但它是一个预发布问题。在整个版本中,大部分 API 都发生了变化。这个问题的答案是不可能的。这仍然是真的吗?肯定不是。
如果可以做到,那就不容易了,必须从您可以获得的有关正在运行的系统的数据中推断出来。不幸的是,文档对此非常不清楚。例如,在Metro 风格应用程序下允许 使用GetNativeSystemInfo 函数。请参阅此列表。
但是,GetNativeSystemInfo 的文档链接到一个示例,该示例说明如何获取使用多个 API 的操作系统版本,这些 API不在Metro 风格应用程序列表中,但该示例仍在 Metro 文档中。还不清楚GetNativeSystemInfo在 ARM 处理器上的响应是什么。
最重要的是,这是一种不好的方法,并且必然会导致代码的脆弱性。我的建议是避免尝试这样做。
您可以通过使用设备 API 获取低级系统组件(如 HAL)的驱动程序版本号来获取操作系统版本号,但可能存在不正确的风险。
http://attackpattern.com/2013/03/device-information-in-windows-8-store-apps/有更多信息和示例代码(披露,我写了那个帖子和代码)
是的,使用 webview 似乎是获取正在运行的处理器的可靠且非常快速的方法。确定赞成与否,企业。不,我找不到办法。
但是,如果您对如何确定处理器感兴趣并从那里开始呢?在这里查看我的答案:https ://stackoverflow.com/a/16996176/265706
看看这个:
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 ];