Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测应用程序是否在Windows RT或Windows 8 Pro上运行?_C#_Javascript_Windows 8.1 - Fatal编程技术网

C# 如何检测应用程序是否在Windows RT或Windows 8 Pro上运行?

C# 如何检测应用程序是否在Windows RT或Windows 8 Pro上运行?,c#,javascript,windows-8.1,C#,Javascript,Windows 8.1,我正在为Windows 8开发一个应用程序,但我想知道是否有办法知道Windows 8的版本,因为如果是Windows 8 RT,我希望该应用程序仅显示2个选项,例如,但如果该应用程序在Windows 8 Pro上运行,我希望该应用程序具有全部功能 我知道当你在Visual Studio中创建软件包时,你可以为应用程序选择你想要的类型或体系结构,但我不知道在使用HTML5的应用程序中,使用C或JavaScript是否可以检测到体系结构以了解Windows 8的版本。我认为你混淆了体系结构和操作系

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


我知道当你在Visual Studio中创建软件包时,你可以为应用程序选择你想要的类型或体系结构,但我不知道在使用HTML5的应用程序中,使用C或JavaScript是否可以检测到体系结构以了解Windows 8的版本。

我认为你混淆了体系结构和操作系统版本的含义。 您正在寻找的操作系统版本实际上是Windows版本,与此无关。 关于你的问题,我认为你在寻找:

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";
取自


关于JavaScript,我很确定,至少目前还没有办法知道它的版本。

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


C可以读取注册表。您应该能够从注册表中获取操作系统版本。我不知道是否有办法摆脱JavaScript。请注意WMI对任何事情都非常挑剔。你需要成为管理员,你需要权利,有时它无缘无故不起作用,行星必须对齐等等。。。等根据经验,我真的建议找到一个替代WMI的选项。