我想在桌面上获取已安装的uwp应用程序列表。我想在uwp应用程序中创建它。有没有办法实现这个目标?
答案 0 :(得分:1)
我们可以使用PackageManager.FindPackagesForUser(String) method查找为UWP应用中当前用户安装的所有软件包,如下所示:
PackageManager packageManager = new PackageManager();
IEnumerable<Windows.ApplicationModel.Package> packages = packageManager.FindPackagesForUser("");
此方法返回Package个对象的可枚举集合。此集合中的每个Package对象都包含有关包的信息,包括但不限于其名称,发布者,版本和安装位置。
但请注意要在UWP应用中使用此方法,我们需要在应用的包清单中声明受限制的功能packageQuery
。
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="packageQuery" />
</Capabilities>
</Package>
有关详细信息,请参阅Special and restricted capabilities。