C# 从Metro样式的应用程序启动Windows资源管理器

C# 从Metro样式的应用程序启动Windows资源管理器,c#,windows-8,microsoft-metro,C#,Windows 8,Microsoft Metro,我想将文件下载到Windows应用商店应用程序的Downloads文件夹。然后我想在DownloadsFolder上打开一个Windows资源管理器(实际上是在DownloadsFolder中创建的文件夹上) 但我不知道怎么做 此stackoverflow问题建议使用Launcher.Launchurisync。但文件声称: 无法使用此方法在本地区域中启动URI。例如,应用程序无法使用file:///协议访问本地计算机上的文件。相反,您必须使用存储API来访问文件 事实上,我试图使用“文件:”

我想将文件下载到Windows应用商店应用程序的Downloads文件夹。然后我想在DownloadsFolder上打开一个Windows资源管理器(实际上是在DownloadsFolder中创建的文件夹上)
但我不知道怎么做

此stackoverflow问题建议使用Launcher.Launchurisync。但文件声称:

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

事实上,我试图使用“文件:”协议来打开浏览器窗口。当我尝试此机制时,Launcher.LaunchIUriAsync失败

如果浏览器可以做到这一点,为什么我不能呢?
有没有办法让我打开windows资源管理器,或者这是不可能的

我认为您无法从metro启动Windows资源管理器。但是,您可以使用文件选择器


我认为您无法从metro启动Windows资源管理器。但是,您可以使用文件选择器


如果您希望在解决方案中包含一些非Windows应用商店组件,则有一个解决方案。虽然您不能直接启动进程,但始终可以在Windows服务中运行HTTP侦听器,该服务侦听来自沙盒Windows应用商店(Metro样式)应用程序的命令,并为您启动资源管理器(或任何其他进程)。实现这一点的一种简单方法是在Windows服务中使用Web API服务—只需在控制器中实现GET操作,并具有要启动的可执行文件的参数,以及可选的可执行文件参数

不过,这有点像是围绕沙盒安全性进行最终运行,因此您可能希望有一个定制的Web API,它只启动一组预打包的应用程序(如Explorer或您自己的一个应用程序)


当然,对于消费者应用程序来说,这不是一个好的解决方案,因为你不能只从Windows应用商店安装所有东西。不过,对于LOB应用程序来说,这并不是一个坏的折衷方案,因为您通常可以更好地控制环境。这是一种很好的方法,可以将一些度量或其他数据显示到活动互动程序中,并在单击互动程序时启动桌面应用程序。这是否有助于获得良好的用户体验是一个完全不同的话题。

如果您愿意在解决方案中使用一些非Windows应用商店组件,则有一个解决方案。虽然您不能直接启动进程,但始终可以在Windows服务中运行HTTP侦听器,该服务侦听来自沙盒Windows应用商店(Metro样式)应用程序的命令,并为您启动资源管理器(或任何其他进程)。实现这一点的一种简单方法是在Windows服务中使用Web API服务—只需在控制器中实现GET操作,并具有要启动的可执行文件的参数,以及可选的可执行文件参数

不过,这有点像是围绕沙盒安全性进行最终运行,因此您可能希望有一个定制的Web API,它只启动一组预打包的应用程序(如Explorer或您自己的一个应用程序)


当然,对于消费者应用程序来说,这不是一个好的解决方案,因为你不能只从Windows应用商店安装所有东西。不过,对于LOB应用程序来说,这并不是一个坏的折衷方案,因为您通常可以更好地控制环境。这是一种很好的方法,可以将一些度量或其他数据显示到活动互动程序中,并在单击互动程序时启动桌面应用程序。这是否有助于获得良好的用户体验是一个完全不同的对话。

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

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

正如已经猜测的那样,无法启动文件协议或explorer.exe。但是,我不知道文件选择器在这种情况下有什么帮助。正如已经猜测的那样,不可能启动文件协议或explorer.exe。但是,我看不出文件选择器在这种情况下有什么帮助。这不能通过Windows应用商店应用程序完成。浏览器是特殊的,所以不要用它们作为Windows应用商店应用程序的示例。你不能这样做。Windows应用商店应用程序已沙盒,无法访问桌面。但是,WinRT API允许通过文件(文件选择器)进行导航。有没有什么原因使您特别需要无法通过WinRT API实现的explorer?我担心情况就是这样。我想做的是让测试人员的生活更轻松。当我们发布新版本时,我会下载新版本。我希望至少弹出资源管理器,这样他们就可以右键单击并在powershell中运行它。复制以在那里查看我的答案以获得正确的方法这无法从Windows应用商店应用程序中完成。浏览器是特殊的,所以不要用它们作为Windows应用商店应用程序的示例。你不能这样做。Windows应用商店应用程序已沙盒,无法访问桌面。但是,WinRT API允许通过文件(文件选择器)进行导航。有没有什么原因使您特别需要无法通过WinRT API实现的explorer?我担心情况就是这样。我想做的是让测试人员的生活更轻松。当我们发布新版本时,我会下载新版本。我希望至少弹出浏览器,这样他们就可以右键单击并在powershell中运行它。复制以查看我的答案以获得正确的方法