Я разрабатываю систему автоматизации, одной из функций которой является запуск приложений из командной строки (то есть автоматически, без вмешательства человека).
В 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