我们想在Metro风格应用程序中使用几个遗留实用程序。尝试重新编译并将它们包装到WinRT组件中是浪费时间,因为它们具有非常简单的接口。
是否可以从Metro Style应用程序生成子进程(将保留在沙箱中)? Metro风格IE似乎能够做到,但是我们都知道它是“特殊的”。
答案 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