在 C#/UWP 中获取“应用程序显示名称”
Posted
技术标签:
【中文标题】在 C#/UWP 中获取“应用程序显示名称”【英文标题】:Get 'Application Display Name' in C# / UWP 【发布时间】:2021-03-06 13:44:24 【问题描述】:According to the docs我可以用这个:Windows.ApplicationModel.AppDisplayInfo.DisplayName
但我收到错误:An object reference is required for the non-static field, method, or property 'AppDisplayInfo.DisplayName
我无法添加“AppDiagnostics”功能或使用包显示名称,这似乎是最常见的解决方案。是文档错误还是我做错了什么?
【问题讨论】:
【参考方案1】:如果有人在 WinUI 3 中需要它
Windows.ApplicationModel.Package.Current.DisplayName
【讨论】:
如果我没记错的话 - 我不能使用“包”显示名称,因为它与“应用程序”显示名称不同(应用程序标题栏中显示的内容)。具体记不太清了【参考方案2】:如果你只想要你当前项目的DisplayName
,你可以使用下面的代码而不需要声明appDiagnostics
能力:
string displayName = Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName;
如果你想要UWP应用、Win32应用、系统服务等所有正在运行的应用中的DisplayName
,你需要先在manifest中添加appDiagnostics
能力。
查看添加appDiagnostics
功能的步骤:
-
在
Package
中添加xmlns:rescap
,在IgnorableNamespaces
中添加rescap
。然后,在Capabilities
中添加appDiagnostics
功能。
<Package xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
<Capabilities>
<rescap:Capability Name="appDiagnostics" />
</Capabilities>
</Package>
appDiagnostics
能力为受限能力,需要获得用户的许可。在第一次调用诊断 API(如AppDiagnosticInfo.RequestInfoAsync()
)时,将触发用户同意提示。或者用户可以打开设置面板,找到隐私选项并设置应用诊断。
请注意,如果权限被用户拒绝,则 API 将仅返回有关当前应用的信息。
-
添加以下代码可查看所有正在运行的应用的
DisplayName
。
var list = await AppDiagnosticInfo.RequestInfoAsync();
foreach (var info in list)
string name = info.AppInfo.DisplayInfo.DisplayName;
【讨论】:
以上是关于在 C#/UWP 中获取“应用程序显示名称”的主要内容,如果未能解决你的问题,请参考以下文章
C# Uwp app webbrowser 控件无法获取设备位置
如何在 UWP 应用(C# 或 WinJS)中获取 Windows 10 版本(例如 1809、1903、1909、...)?