Launch Windows Explorer from Metro style app



我想将文件下载到Windows Store应用程序中的下载folder。然后,我想在下载者上打开一个Windows Explorer(实际上是在我在下载者中创建的文件夹上)
但是我不知道该怎么做。

这个堆叠的问题启动了使用Metro Style应用程序启动桌面应用程序,建议使用Launcher.launchuriasync。但是文档要求:

您不能使用此方法在本地区域启动URI。例如,应用程序无法使用文件:///协议在本地计算机上访问文件。相反,您必须使用存储API访问文件。

的确,我试图使用"文件:"协议来提出Explorer窗口。当我尝试此机制启动器时

如果浏览器可以执行此操作,为什么不能?我有没有办法提出Windows Explorer,还是超出了可能性?

我认为您无法从Metro启动Windows Explorer。但是,您可以使用的一件事是文件选择器。

http://code.msdn.microsoft.com/windowsapps/file-picker-app-extension-0cb95155

如果您愿意在解决方案中有一些非窗口存储组件,则可以做到这一点。尽管您无法直接启动流程,但您始终可以在Windows服务中运行HTTP侦听器,该Windows服务会从沙盒Windows Store(Metro Style)应用程序中聆听命令,并为您启动Explorer(或任何其他过程)。一个微不足道的方法是Windows服务中的Web API服务 - 只需在控制器中实现GET Action,并为可执行文件提供参数,也可以选择可执行的参数。

这是在沙箱安全性周围进行最终运行的一种,因此您可能想拥有一个量身定制的Web API,它只是启动了一套预包装的应用程序(例如Explorer或您自己的应用程序之一)。

当然,对于消费者应用程序,这不是一个不错的解决方案,因为您不能只安装Windows商店中的所有内容。但是,对于LOB应用程序,这并不是一个不好的折衷方案,因为您通常对环境有更多的控制权。这是将某些指标或其他数据浮在实时瓷砖中的好方法,并在单击瓷砖时启动桌面应用程序。这是否使良好的用户体验成为完全不同的对话。

BATRT允许您从WinRT应用程序运行批处理文件命令。它利用URI调用。这可以用于打开应用程序或执行文件操作。

最新更新