从命令行在Metro应用程序中打开文件
我需要一种方法来从命令行打开Metro应用程序中的文件。从命令行在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。
如果应用程序是默认处理程序,那么您可以启动文件或协议。从命令行启动文件到非默认处理程序中没有很好的内置方法。
Windows应用商店应用并非设计为从命令行运行,并且没有直接从命令行启动它们的方式。其处理特定文件或协议的应用程序接收他们通过FileActivatedEventArgs或ProtocolActivatedEventArgs而不是命令行参数
你可以写它采用CLSID_ApplicationActivationManager的IApplicationActivationManager到ActivateForFile特定应用的启动应用程序。
如果您仍然在寻找答案,在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
请注意:要打开一个应用程序没有一个协议(一个在注册表中或在 “设置关联” 未上市)使用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是这个名字。
把它放在一起获得
这是非常接近我想要的,除了我怎么知道metro风格的应用程序是默认的,因此,使用这种方法? – Arafangion 2015-06-09 06:23:37
要了解有关协议的更多信息,并通过特定协议打开哪个应用程序,请打开“设置”,选择“系统”,单击侧边栏上的“默认应用程序”选项卡,然后向下滚动,直到找到“选择默认应用程序protocol'。 – 2017-06-07 09:45:13
商店应用程序只能通过壳启动。所以,试试这个:
explorer.exe shell:AppsFolder\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App
或者从运行(WIN + R):
shell:AppsFolder\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App
不知道这是否适用于Windows 8,但在Windows 10我用这个:
cmd /C start <app-name>:
例如,要启动Slack:
cmd /C start slack:
我可以使用“start path/to/file.pdf”启动它,但这会在旧系统上打开命令提示符。 – Arafangion 2015-06-09 06:22:41