从命令行在Metro应用程序中打开文件

时间:2014-10-07 20:32:14

标签: command-line windows-8 microsoft-metro command-line-arguments windows-10

我需要一种从命令行在Metro应用程序中打开文件的方法。

到目前为止,我已经找到了如何在没有任何第三方脚本的情况下从命令行启动应用程序

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

但我还没有弄清楚如何包含文件名。

下水

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

只需打开一个默认的资源管理器窗口。

来自Windows 8专家的任何想法如何实现没有任何第三方工具/ cmdlet /等。

注意:事实上我使用的是Windows 10,但我想如果有Windows 8 / 8.1的方式来做,那么它也适用于10

5 个答案:

答案 0 :(得分:8)

如果您仍在寻找答案,在Metro应用程序中打开文件的最佳方法是使用像普通应用程序协议那样的执行字符串。执行字符串如下所示:

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

因此,要启动netflix,只需在命令行中键入Start netflix:即可。

要查找应用的执行字符串,请转到此处:控制面板\程序\默认程序\设置关联


可在此处找到更多信息和示例。

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/


请注意:要打开没有协议的应用程序(一个未列在注册表中或#34;设置关联")使用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

答案 1 :(得分:2)

如果应用程序是默认处理程序,那么您只需启动文件或协议即可。没有一种好的收件箱方法可以从命令行将文件启动到非默认处理程序中。

Windows应用商店应用程序并非设计为从命令行运行,并且没有一种直接的方法可以从命令行启动它们。处理特定文件或协议的应用程序通过FileActivatedEventArgsProtocolActivatedEventArgs而不是命令行参数接收它们

您可以编写一个启动器应用程序,该应用程序使用CLSID_ApplicationActivationManager的IApplicationActivationManagerActivateForFile特定应用程序。

答案 2 :(得分:2)

商店应用只能由shell启动。所以试试这个:

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

或者从跑步(Win + R):

shell:AppsFolder\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App

答案 3 :(得分:0)

不确定它是否适用于Windows 8,但在Windows 10上我使用它:

cmd /C start <app-name>:

例如,要启动Slack:

cmd /C start slack:

答案 4 :(得分:0)

我发现将命令行参数传递给 shell 命令所针对的可执行文件的最佳方法是通过 Windows 启动命令。

使用你的例子,你会得到这样的结果:

start "" shell:AppsFolder\Microsoft.Reader_8wekyb3d8bbwe!Microsoft.Reader example.pdf

我没有安装 Microsoft.Reader,所以无法测试。但是,我可以验证此模式是否适用于 Windows 终端。在这种情况下,我向它传递了一个命令行参数来告诉它我想打开哪个配置文件。

start "" shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App new-tab -p "GitBash"

这里启动命令的第一个参数——空字符串——只是窗口的标题。

您也可以将它与 cmd /c 配对,我发现它对于某些启动器应用程序是必需的,例如我个人最喜欢的 SlickRun:

cmd /c start "" shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App new-tab -p "GitBash"

我有一个 blog post,其中包含有关从命令行运行现代应用程序的更多信息,您可能会发现这些信息有助于构建这些荒谬的命令。