从Windows 8店应用程序(C#)启动另一个应用程序或程序的可能性是存在的吗?

3

我想从我的Windows Store应用程序启动另一个应用程序或程序。例如,我的应用正在显示电子邮件,因此如果有人点击这样的电子邮件,则应打开Outlook。在“应用沙箱”中是否可能实现此功能?


1
这在“应用沙盒”中可能吗?- 希望不是。 - Mitch Wheat
你尝试过什么吗?附上你的代码示例会更好。请阅读[帮助]。 - Soner Gönül
尝试使用这个堆栈:http://stackoverflow.com/questions/13734315/start-process-in-windows-8-metro-application - Gusdor
@Gusdor,Launcher类在我的情况下无法工作。 - Martin
@SonerGönül 尝试了 Launcher 类,但没有成功。还尝试在我的应用程序目录(我的应用程序具有完全访问权限的位置)中保存 *.lnk 文件并启动此文件。也没有成功。 - Martin
@MitchWheat 你说得对。但是我的客户想要这样做,所以我必须找到一个可能性;)。微软的应用程序也可以做一些“普通”开发人员无法做到的事情。 - Martin
3个回答

3

简短回答:不,这是不可能的。

您可以使用相关联的应用程序打开文件,但无法生成任何任意外部进程。

正如@mitch-wheat指出的那样,这就是所谓的沙盒环境。


这并不让我感到自信,但我想我必须接受这个事实。谢谢。 - Martin

3

无法启动任意应用程序,但使用自定义协议激活,您可以启动处理该协议的应用程序,如果未安装,则操作系统将要求用户安装。这意味着,如果您可以在应用程序中定义自定义协议,则可以使用此协议从另一个应用程序启动它,假设没有其他应用程序注册以处理它。其中一个示例是任何XBOX Live应用程序-如果检查它们的清单文件-它们都处理自定义协议。

如果您的具体问题是按名称或位置启动特定应用程序,则不行,但如果您知道应用程序处理的协议,则可以尝试使用该协议-请记住可能有其他应用程序处理该协议。


好的。谢谢你提供这么详细的答案。我需要研究一下自定义协议的方法。可能没有其他应用程序处理该协议,因为它是企业环境 ;) - Martin

0
请查看此示例
示例适用于Windows 8.1,但我认为也适用于Windows 8。

谢谢,但我认为有一些误解。我没有要打开的文件。如果我有一封电子邮件,那么会有一个文件,但我的问题的意思有点不同。我想打开Word、Calc或Excel等文件,例如,如果我在我的应用程序中点击一个按钮,而不需要文件变通方法。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接