在 C# / UWP 中获取“应用程序显示名称”

问题描述 投票:0回答:3

根据文档我可以使用这个:

Windows.ApplicationModel.AppDisplayInfo.DisplayName

但是我收到错误:

An object reference is required for the non-static field, method, or property 'AppDisplayInfo.DisplayName

我无法添加“AppDiagnostics”功能或使用包显示名称,这似乎是最常见的解决方案。是文档错误还是我做错了什么?

c# windows uwp
3个回答
5
投票

如果有人需要 WinUI 3

Windows.ApplicationModel.Package.Current.DisplayName

3
投票

如果您只想要当前项目的

DisplayName
,您可以使用以下代码,无需声明
appDiagnostics
功能:

string displayName = Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName;

如果您想要所有正在运行的应用程序(包括UWP应用程序、Win32应用程序、系统服务等)的

DisplayName
,您需要先在清单中添加
appDiagnostics
功能。

检查添加

appDiagnostics
功能的步骤:

  1. xmlns:rescap
    中添加
    Package
    ,在
    rescap
    中添加
    IgnorableNamespaces
    。然后,在
    appDiagnostics
    中添加
    Capabilities
    功能。
    <Package   xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" 
    IgnorableNamespaces="uap mp rescap">
      <Capabilities>
        <rescap:Capability Name="appDiagnostics" />
      </Capabilities>
    </Package>
  1. appDiagnostics
    能力是受限能力,需要获得用户的许可。首次调用
    AppDiagnosticInfo.RequestInfoAsync()
    等诊断API时,将触发用户同意提示。或者用户可以打开设置面板,找到隐私选项并设置应用程序诊断

enter image description here

请注意,如果用户拒绝权限,则 API 将仅返回有关当前应用程序的信息。

  1. 添加以下代码即可查看所有正在运行的应用程序的
    DisplayName
var list = await AppDiagnosticInfo.RequestInfoAsync();
foreach (var info in list)
{
    string name = info.AppInfo.DisplayInfo.DisplayName;
}

0
投票

要在打包应用程序中获取“应用程序>显示名称”,只需使用

Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName

您还可以通过以下方式获取“应用程序>说明”:

Windows.ApplicationModel.AppInfo.Current.DisplayInfo.Description

获取包信息,例如:包名称、包显示名称、版本、发布者。使用以下静态类:

Windows.ApplicationModel.Package

© www.soinside.com 2019 - 2024. All rights reserved.