Could I know if my app is running on Windows RT with C#?(我能否知道我的应用程序是否在使用 C# 的 Windows RT 上运行?)
问题描述
I know that there is no way to get OS version in Windows Store app, please let me explain more.
My app is a Windows Store app programming with C#. Some features of my app is depend on another desktop app (maybe it's not a good design). As I know, a third-party desktop app can not install on Windows RT, so I just want to know if my app is running on Windows RT and forbid some features of my app on Windows RT. I don't want to use GetNativeSystemInfo(), because it's a win32 API, and if I use that API, my app can't compli with any cpu.
Yep. Here's how!
Task<ProcessorArchitecture> WhatProcessor()
{
var t = new TaskCompletionSource<ProcessorArchitecture>();
var w = new WebView();
w.AllowedScriptNotifyUris = WebView.AnyScriptNotifyUri;
w.NavigateToString("<html />");
NotifyEventHandler h = null;
h = (s, e) =>
{
// http://blogs.msdn.com/b/ie/archive/2012/07/12/ie10-user-agent-string-update.aspx
// IE10 on Windows RT: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0;)
// 32-bit IE10 on 64-bit Windows: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
// 64-bit IE10 on 64-bit Windows: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
// 32-bit IE10 on 32-bit Windows: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)
try
{
if (e.Value.Contains("ARM;"))
t.SetResult(Windows.System.ProcessorArchitecture.Arm);
else if (e.Value.Contains("WOW64;") || e.Value.Contains("Win64;") || e.Value.Contains("x64;"))
t.SetResult(Windows.System.ProcessorArchitecture.X64);
else
t.SetResult(Windows.System.ProcessorArchitecture.X86);
}
catch (Exception ex) { t.SetException(ex); }
finally { /* release */ w.ScriptNotify -= h; }
};
w.ScriptNotify += h;
w.InvokeScript("execScript", new[] { "window.external.notify(navigator.userAgent); " });
return t.Task;
}
Best of luck!
这篇关于我能否知道我的应用程序是否在使用 C# 的 Windows RT 上运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:我能否知道我的应用程序是否在使用 C# 的 Windows RT 上运行?


基础教程推荐
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01