Открытие файла в приложении Metro из командной строки

Мне нужно открыть файл в приложении Metro из командной строки.

До сих пор я выяснил, как запустить приложение из командной строки без каких-либо сторонних скриптов.

explorer shell:AppsFolder\Microsoft.Reader_8wekyb3d8bbwe!Microsoft.Reader

но я еще не смог выяснить, как включить имя файла.

Запуск

explorer shell:AppsFolder\Microsoft.Reader_8wekyb3d8bbwe!Microsoft.Reader example.pdf

просто открывает окно проводника по умолчанию.

Любая идея от экспертов Windows 8 о том, как выполнить этот без любых сторонних инструментов/командлетов/и т.д.?

Примечание. Фактически, я использую Windows 10, но я думаю, что если есть способ Windows 8/8.1, он будет работать и на 10.

Ответ 1

Если вы все еще ищете ответ, лучший способ открыть файл в приложении метро - использовать строку выполнения, как это делает обычный протокол приложения. Строка выполнения выглядит так:

bingnews:[arguments, can be left blank.]
microsoftvideo:[arguments, can be left blank.]
netflix:[arguments, can be left blank.]

Итак, чтобы запустить netflix, это так же просто, как ввести Start netflix: в командной строке.

Чтобы найти строку исполнения для приложения, перейдите сюда: Панель управления\Programs\Программы по умолчанию\Установить ассоциации


Более подробную информацию и примеры можно найти здесь.

http://windowsitpro.com/windows-8/opening-windows-8-apps-command-prompt-or-script

http://www.itsjustwhatever.com/2012/10/28/launch-windows-8-metro-apps-from-a-desktop-shortcut-or-command-line/


ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Чтобы открыть приложение БЕЗ ПРОТОКОЛА (один из них не указан в реестре или в разделе "Установить ассоциации" ), используйте метод OP:

explorer shell:AppsFolder\[appuid]![appfullname]

UID приложения - это имя папки без номера версии. Например,

4DF9E0F8.Netflix_ 2.11.0.8_x64 __ mcm4njqhnhss8

становится

4DF9E0F8.Netflix_mcm4njqhnhss8

Полное имя приложения - [App author].[App name] Например, 4DF9E0F8.Netflix. 4DF9E0F8 является автором, а Netflix - именем.

Поместите все это вместе, чтобы получить

explorer shell:AppsFolder\4DF9E0F8.Netflix_mcm4njqhnhss8!4DF9E0F8.Netflix

Ответ 2

Если приложение является обработчиком по умолчанию, вы можете просто запустить файл или протокол. В командной строке нет хорошего способа запуска файла в обработчик не по умолчанию.

Приложения Windows Store не предназначены для запуска из командной строки, и нет простого способа запустить их из командной строки. Приложения, которые обрабатывают определенные файлы или протоколы, получают их через FileActivatedEventArgs или ProtocolActivatedEventArgs, а не аргументы командной строки

Вы можете написать приложение для запуска, которое использует CLSID_ApplicationActivationManager IApplicationActivationManager для ActivateForFile конкретное приложение.

Ответ 3

Хранить приложения можно только в оболочке. Поэтому попробуйте следующее:

explorer.exe shell:AppsFolder\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App

Или из run (Win + R):

shell:AppsFolder\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App

Ответ 4

Не уверен, что он работает в Windows 8, но в Windows 10 я использую это:

cmd /C start <app-name>:

Например, для запуска Slack:

cmd /C start slack: