使用c#在Windows 10中列出和启动metro应用程序

本文关键字:启动 metro 应用程序 Windows 使用 | 更新日期: 2023-09-27 18:17:50

我需要列出Windows 10系统中安装的metro应用程序。从列表开始,我想启动任何安装的应用程序。唯一的要求是我不必使用PackageManager类。

我刚刚解决了这个问题在Win 8开始从这个鼓舞人心的代码PowerShell http://poshcode.org/3740现在我想在Windows 10中做同样的事情,但在我看来,地铁应用程序的注册表映射自8/8.1以来发生了很大变化。

使用c#在Windows 10中列出和启动metro应用程序

不确定这是否对你有帮助,但我在Windows 10中发现了一个可能有用的本地powershell命令。

Get-AppxPackage

例如,要获取应用程序名称列表:

> Get-AppxPackage | Select Name
Name
----
Microsoft.AAD.BrokerPlugin
Microsoft.Windows.CloudExperienceHost
Microsoft.AccountsControl
Microsoft.BioEnrollment
Microsoft.LockApp
Microsoft.MicrosoftEdge
Microsoft.Windows.AssignedAccessLockApp
Microsoft.Windows.ContentDeliveryManager
Microsoft.Windows.ParentalControls
Microsoft.Windows.ShellExperienceHost
Microsoft.XboxGameCallableUI
Microsoft.XboxIdentityProvider
Windows.ContactSupport
windows.immersivecontrolpanel
Windows.MiracastView
Windows.PrintDialog
Windows.PurchaseDialog
windows.devicesflow
Microsoft.VCLibs.140.00
Microsoft.VCLibs.140.00
Microsoft.Windows.Cortana
Microsoft.WindowsFeedback
Microsoft.NET.Native.Runtime.1.1
Microsoft.NET.Native.Runtime.1.1
Microsoft.VCLibs.120.00.Universal
4DF9E0F8.Netflix
Microsoft.VCLibs.120.00.Universal
Microsoft.WindowsCalculator
Microsoft.Appconnector
Microsoft.WindowsStore
Microsoft.NET.Native.Runtime.1.0
Microsoft.VCLibs.120.00
Microsoft.Media.PlayReadyClient.2

我个人只安装了一个第三方地铁应用程序,Netflix,我甚至卸载了一些默认的微软应用程序。

如果你想从这个查询中排除微软和Windows应用程序:

> Get-AppxPackage | ? {$_.Name -notlike "Microsoft*" -AND $_.Name -notlike "Windows*"}| Select Name
Name
----
4DF9E0F8.Netflix

我还没有找到一种方法来启动应用程序,但我确信这是朝着正确方向迈出的一步。;)

编辑:

好吧,这原来是如此简单,但令人惊讶的是很难发现…

Start Shell:AppsFolder'4DF9E0F8.Netflix_mcm4njqhnhss8!App

这个AppID可以从下面获取,据我所知,它列出了开始菜单中的所有内容。

Get-StartApps

也可以通过附加"! "来从Get-AppxPackages cmdlet中检索。

Get-AppxPackage | % { $_.PackageFamilyName + "!App" }

我发现这对一些人有用,但不是全部。例如,它与Netflix、Calculator、Store合作。但微软Edge是"!"MicrosoftEdge"不是!App"。所以我不会说这是一个可靠的方法,除非你能从其他地方识别或检索后缀,这就是为什么我觉得Get-StartApps更适合我。(我个人只是在寻找一种通过脚本/快捷方式启动Netflix的方法…)