Можно ли порождать дочерний процесс из Windows 8 Metro Style App? - PullRequest
3 голосов
/ 27 января 2012

Мы хотели бы использовать несколько устаревших утилит в нашем приложении в стиле Metro.Попытка перекомпилировать и обернуть их в компоненты WinRT было бы пустой тратой времени, поскольку они имеют очень простые интерфейсы.

Возможно ли порождать дочерний процесс (который останется в песочнице) из приложения Metro Style?IE в стиле Metro, похоже, сможет это сделать, однако, как мы все знаем, он «особенный».

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

Вы должны быть в состоянии упаковать ваш процесс как COM-объект вне процесса и использовать CoCreateInstanceFromApp для его запуска.

Вероятно, возникнут некоторые проблемы, связанные с получением прокси / заглушек для вашего COMинтерфейсы для работы - опыт разработки низкоуровневых C ++ / IDL в настоящее время недостаточно документирован, поэтому создание прокси / заглушек будет трудным, но это абсолютно возможно.

1 голос
/ 27 января 2012

В метро нет таких API, как SellExecute или createprocess, поэтому вы не можете запускать другие программы как есть. Однако вы можете использовать обработчики протокола. Приложение Metro может зарегистрировать обработчик протокола или использовать существующие обработчики. Подумайте о http: // или mail: //, который запускает приложение по умолчанию, зарегистрированное для этого обработчика. Вы можете использовать пользовательский обработчик, если он еще не зарегистрирован ...

0 голосов
/ 27 июня 2012

CoCreateInstanceFromApp () позволяет только создавать в процессе классы COM, которые поставляются вместе с вашим приложением.Вам нужно написать вне процесса WinRT EXE-сервер.Пожалуйста, посмотрите этот образец:

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

...