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

时间:2012-01-27 08:56:24

标签: windows-8 windows-runtime createprocess

我们想在Metro风格应用程序中使用几个遗留实用程序。尝试重新编译并将它们包装到WinRT组件中是浪费时间,因为它们具有非常简单的接口。

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

3 个答案:

答案 0 :(得分:2)

您应该能够将进程打包为进程外COM对象,并使用CoCreateInstanceFromApp启动它。

可能存在一些与使COM接口的代理/存根工作相关的挑战 - 目前没有很好地记录低级C ++ / IDL创作经验,因此构建代理/存根将很困难,但它绝对是可以的。

答案 1 :(得分:1)

在Metro中没有API,如SellExecute或createprocess,因此您无法按原样启动其他程序。 但是,您可以使用协议处理程序。 metro应用程序可以注册协议处理程序,或使用现有的处理程序。想想http://或mail://启动为该处理程序注册的默认应用程序。如果尚未注册,您可以使用自定义处理程序...

答案 2 :(得分:0)

CoCreateInstanceFromApp()仅允许您创建随应用程序打包的进程COM类。您需要编写一个进程外的WinRT EXE服务器。请看这个样本:

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