是否可以从Windows 8 Metro Style App产生子进程?

是否可以从Windows 8 Metro Style App产生子进程?

问题描述:

我们希望在我们的Metro风格应用程序中使用几个传统实用程序。试图重新编译并将它们包装到WinRT组件中会浪费时间,因为它们具有非常简单的接口。是否可以从Windows 8 Metro Style App产生子进程?

是否有可能从Metro Style应用程序产生一个子进程(它将留在沙箱中)? Metro风格的IE似乎能够做到,但是因为我们都知道它是“特殊”的。

+0

Windows.System.Launcher类。不知道什么范围或发送箱可能意味着什么,我不怀疑你会发现它缺乏。 – 2012-01-27 10:41:42

+0

“Span”是一个错字,很抱歉。 – 2012-01-27 11:52:35

+0

通过sendbox我的意思是这个子进程不会发出任何限制的系统调用。 – 2012-01-27 11:53:37

您应该能够将您的进程打包为超出proc的COM对象并使用CoCreateInstanceFromApp来启动它。

可能会有一些挑战与获取代理/存根让您的COM接口工作 - 低级别的C++/IDL创作经验目前没有很好的记录,因此构建代理/存根将很困难,但它绝对有可能做到。

地铁里没有像SellExecute或createprocess这样的API,所以你不能按原样启动其他程序。 但是,您可以使用协议处理程序。地铁应用程序可以注册一个协议处理程序,或使用现有的处理程序。想想http://或mail://启动为该处理程序注册的默认应用程序。您可以使用自定义处理程序,如果它们尚未注册...

CoCreateInstanceFromApp()仅允许您创建与您的应用程序一起打包的进程COM类。你需要编写一个没有进程的WinRT EXE服务器。请参见本示例:

http://code.msdn.microsoft.com/windowsapps/Hybrid-app-Exe-server-79bc4bca

+0

链接已损坏:( – deadlydog 2014-03-18 17:15:24