Запуск программы в другой? - PullRequest
3 голосов
/ 26 марта 2010

Я написал программу на C ++. Он просто использует консоль, чтобы сделать ее максимально переносимой. К сожалению, многие пользователи Windows, похоже, не понимают, как использовать программу (пользователи Linux просто в порядке с ней :)). Поэтому я хотел бы написать графический интерфейс для этой программы. Поскольку это должно выполняться только на Windows, я хотел бы написать это на C #.

Но я хочу сохранить графический интерфейс отдельно от исходной программы. В общем, мне нужен способ включить скомпилированный * .exe в другую программу. Есть ли способ отловить вывод консоли из другой программы и отправить в нее входные данные? Кроме того, консоль оригинальной программы может быть скрыта?

Похожие вопросы

Как: выполнить командную строку в C #, получить результаты STD OUT

Ответы [ 5 ]

1 голос
/ 26 марта 2010

Есть несколько способов сделать это. Класс System.Diagnostics.Process имеет методы, которые позволяют вам получить доступ к входу и выходу приложения, вы можете автоматизировать его оттуда.

По сути, вы можете использовать методы StandardInput и StandardOutput для получения выходных данных, а затем взаимодействовать с входными данными для управления приложением. Публикация в разделе «Похожие вопросы» к вашему вопросу показывает первую часть этого, часть StandardOutput.

1 голос
/ 26 марта 2010

Что было бы здорово, если бы вы могли извлечь свою программу в библиотеку C ++, которая затем используется консольной программой C ++. Чтобы интегрировать его с C #, все, что вам нужно сделать, это определить точки входа pInvoke в эту DLL, и тогда вы сможете вызывать свой код прямо из приложения с графическим интерфейсом.

0 голосов
/ 26 марта 2010

Хотя то, что вы хотите, вероятно, покрыто дубликатом, вы задали один конкретный вопрос, на который нужно ответить:

Мне нужен способ включить скомпилированный * .exe в другую программу

Ты не можешь этого сделать. В лучшем случае вы можете создать библиотеку, как подсказывает @Justin Ethier, на которую полагаются как ваш графический интерфейс, так и инструмент командной строки.

0 голосов
/ 26 марта 2010

Вы можете включить переключатель командной строки (например, / g) в свое приложение C #, которое будет запускать ваше приложение в режиме графического интерфейса, а не в консоли. Вы просто оценили бы аргумент в своей функции Main и либо запустили Win Form, которая принимала бы ввод и запускал любые алгоритмы, либо просто придерживались режима консоли. По умолчанию ваше приложение будет работать на консоли или наоборот, если вы выберете.

0 голосов
/ 26 марта 2010

Попробуйте, посмотрите на здесь

...