Как запустить Metro-приложение из командной строки в Windows 8?

Как запустить Metro-приложение из командной строки в Windows 8?

Я разрабатываю систему автоматизации, одной из функций которой является запуск приложений из командной строки (то есть автоматически, без вмешательства человека).

В Windows 7 я могу запустить все, что захочу, из командной строки. Есть ли какой-то похожий способ сделать то же самое в Windows 8 с установленными на ней Metro-приложениями?

решение1

Да! Я нашел способ...

На основеэтотисходный код("Открыть приложение в стиле Metro из приложения для рабочего стола"), я понял, что могу вызывать приложения Metro так же, как мы обычно запускаем их вручную. Я имею в виду, если вы нажмете Ctrl+ Escи перейдете на экран Metro, вы можете просто ввести имя приложения Metro, например "store", нажать Enterи все, приложение Metro запустится. На основе этого я создал очень простой VBScript для автоматического выполнения именно этих шагов:

Установить objShell = WScript.CreateObject("WScript.Shell")

objShell.SendKeys "^{ESC}"

WScript.Сон 1000

objShell.SendKeys WScript.Arguments.Item(0)

WScript.Сон 1000

objShell.SendKeys "{ENTER}"

Сохраните это как «metro.vbs» и вызовите из командной строки, указав имя приложения Metro в первом аргументе:

магазин metro.vbs

Вот и все, очень простой и оптимизированный способ.

PS: Все кредиты предоставленыАль-Хузаи, пользователь сайта Codeplex, создавший соответствующий код. Спасибо.

решение2

Следующая запись блога и соответствующий код покажут вам, как это сделать с помощью IApplicationActivationManager в PowerShell.

Получите список приложений Metro и запустите их в Windows 8 с помощью PowerShell « Tome's Land of IT

К счастью, мне удалось найти некоторый код наПереполнение стекакоторый показал, как использовать это в C# (в посте также была указана информация о реестре, которую я опишу в этой статье). После некоторой настройки кода и синтаксиса Add-Type я смог выставить нужную мне функцию в PowerShell. После этого оставалось только обернуть функцию во что-то похожее на PowerShell.

Код можно найти напочтовый индекс.

решение3

Я только что придумал другой способ сделать это и написал небольшую статью об этом наhttp://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/

Короткая версия: создайте ярлык, указывающий на bingnews:// Вы можете посмотреть, делает ли он то, что вам нужно. Если да, то есть дополнительные инструкции по получению имен на веб-сайте.

решение4

Я нашел способ запускать универсальные приложения Windows, которые загружены через Магазин Windows или предустановлены. Каждое универсальное приложение Windows 8/10 имеет , AUMIDчто означает 'Application User Model ID'.

PowerShellКоманда для получения всех AUMID:

get-StartApps

Выход:

PS C:\> get-StartApps

Name                      AppID
----                      -----
Skype                     Microsoft.SkypeApp_kzf8qxf38zg5c!App
Snip & Sketch             Microsoft.ScreenSketch_8wekyb3d8bbwe!App
Mail                      microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w...
Calendar                  microsoft.windowscommunicationsapps_8wekyb3d8bbwe!microsoft.w...
Movies & TV               Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo
Photos                    Microsoft.Windows.Photos_8wekyb3d8bbwe!App
Video Editor              Microsoft.Windows.Photos_8wekyb3d8bbwe!SecondaryEntry
Maps                      Microsoft.WindowsMaps_8wekyb3d8bbwe!App
Alarms & Clock            Microsoft.WindowsAlarms_8wekyb3d8bbwe!App
Voice Recorder            Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe!App
Camera                    Microsoft.WindowsCamera_8wekyb3d8bbwe!App
Microsoft Store           Microsoft.WindowsStore_8wekyb3d8bbwe!App
Weather                   Microsoft.BingWeather_8wekyb3d8bbwe!App
Cortana                   Microsoft.549981C3F5F10_8wekyb3d8bbwe!App
Instagram                 Facebook.InstagramBeta_8xx8rvfyw5nnt!Instagram
...

Теперь вы можете запустить любое универсальное приложение через его AUMID следующим образом:

explorer shell:appsfolder\[AUMID]

Например, если вы хотите выполнить Skype:

explorer shell:appsfolder\Microsoft.SkypeApp_kzf8qxf38zg5c!App

Связанный контент