2015-10-15 5 views
0

Мне нужно указать установленные приложения метро в системе Windows 10. Начиная со списка, я хотел бы запустить любое установленное приложение. Единственным требованием является то, что мне не нужно использовать класс PackageManager.Список и запуск приложений метро в Windows 10 с C#

Я просто решить эту проблему в Win 8, начиная с этого вдохновляющего кода в PowerShell http://poshcode.org/3740 Теперь я хотел бы сделать то же самое в Windows 10, но мне кажется, что отображение реестра для приложений метро сильно изменилась с тех пор 8/8.1.

ответ

0

Не уверен, что это вам поможет, но я нашел команду родной powershell в Windows 10, которая может пригодиться.

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, и я даже удалил некоторые значения по умолчанию Приложения Microsoft.

Если вы хотите, чтобы исключить приложения Microsoft и Windows, из этого запроса:

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

Name 
---- 
4DF9E0F8.Netflix 

Я еще предстоит найти способ запуска приложений из этого, но я уверен, что это шаг в правильное направление. ;)

Edit:

Хорошо, это оказалось так просто, и все же удивительно трудно узнать ...

Start Shell:AppsFolder\4DF9E0F8.Netflix_mcm4njqhnhss8!App 

Это AppID могут быть получены из следующих, который, насколько я могу судить, перечисляет все в стартовом меню.

Get-StartApps 

Он также может быть в состоянии извлечь из командлета Get-AppxPackages путем добавления «! App» на конец имущества PackageFamilyName.

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

Я нашел это для работы с некоторыми, но не для всех. Он работал с Netflix, Calculator, Store, например. Но Microsoft Edge была «! MicrosoftEdge», а не «! App». Поэтому я бы не сказал, что это надежный метод, если вы не можете определить или получить суффикс из другого места, поэтому я нашел Get-StartApps лучшим для меня. (Я лично искал способ запуска Netflix с помощью скрипта/ярлыка ...)

+1

К сожалению, вопрос требует решения C#. Я попытался получить исходный код вовлеченных сборок вашего решения PowerShell, но в итоге нашел c: \ Windows \ System32 \ Windows.ApplicationModel.dll, который не является управляемой библиотекой. – epikarma

Смежные вопросы