Как можно запустить консольное приложение из другого оконного приложения, посылать ему команды и читать его ответы?
1. С помощью стандартного ввода-вывода
2. Обмениваться данными можно с помощью стандартных сокетов или с помощью unix-сокетов (если это *nix система)
3. Можно использовать костыли в виде сервера очередей, базы даных, или какого-нибудь кэширующего хранилища типа Memcached