Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Console Forn + Windows Form, Вызов консоли из WF приложения 
:(
    Опции темы
VisualProgrammerNET
Дата 22.12.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Суть беды:

1) Создал консольное приложение с паблик методом

Код

public static void WriteMessage (string message)
{
     Console.WriteLine(message);
}


2) Скомпилировал.
3) В приложении Windows Forms теперь надо как-то реализовать методы, которые
а) запускал бы консольное приложение
б) обращался бы к методу WriteMessage из консоли.

Как? smile


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



VisualProgrammerNET

Самый простой способ - поменять в свойствах своего проекта на Console Application, тогда консоль будет видна, и открывать и показывать форму в static void Main()


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 22.12.2005, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(VisualProgrammerNET @ 22.12.2005, 13:31)
а) запускал бы консольное приложение

то есть стартовал отдельный процесс?


--------------------
user posted image
PM MAIL WWW   Вверх
VisualProgrammerNET
Дата 22.12.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Не-не-не... тут немножко другое. У меня приложение Windows Form (назовём его А), а консольное приложение (Б) - отдельно. Я его хочу использовать Б для трассировки А. В А я добавил референс на Б, но никаких новых неймспейсов не появилось. Как обращаться из А к Б - непонятно...

Цитата

то есть стартовал отдельный процесс?


Ага.

Это сообщение отредактировал(а) VisualProgrammerNET - 22.12.2005, 15:06


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



VisualProgrammerNET
Использовать ProcessStartInfo.StandardInput, ProcessStartInfo.StandardOutput пробовал?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 22.12.2005, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Я такими вещами ещё не пользовался никогда... smile Я ещё только в начале пути изучения C#. Не расскажете, что это за вещи, и как ими пользоваться?


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(VisualProgrammerNET @ 22.12.2005, 15:18)
Я такими вещами ещё не пользовался никогда

Сорри, опечатался. Должно было быть Process.StandardInput, Process.StandardOutput

Если в двух словах, то примерно так:

Код

using System.Diagnostics;

Process prc = new Process();
prc.StartInfo.FileName = "MyApp.exe";
prc.Start();

// здесь надо подождать, пока в консоли появятся данные
MessageBox.Show(prc.StandardOutput.ReadToEnd());



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 22.12.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



// здесь надо подождать, пока в консоли появятся данные

так вот в том-то и проблема, что непонятно, как в консоль эти данные передать smile


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



А может вот так получится?

Код

System.IO.StreamWriter wr = new System.IO.StreamWriter(prc.StandardOutput);
wr.Write("something");



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 22.12.2005, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



smile Спасибо


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
VisualProgrammerNET
Дата 22.12.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



А нельзя ли всё же как-нибудь обратиться от одного приложения к другому? В смысле, из одного вызвать метод другого?


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



VisualProgrammerNET
Можно. Для этого есть такая штука как Remoting. Читай MSDN smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 22.12.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Да... где-то я натыкался на подобную штуку уже, когда бороздил интернет в поисках ответа на этот вопрос. Думал, можно будет без Remoting'а обойтись... ну да ладно smile


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.12.2005, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(VisualProgrammerNET @ 22.12.2005, 16:44)
можно будет без Remoting'а обойтись... ну да ладно

Можно, вот так smile

1. Первая программа (П1) создает файл C:\Command.txt
2. Вторая программа (П2) ставит на него FileSystemWatcher
П1 управляет П2
3. П1 пишет в файл строку вида Command param1 param2 и закрывает файл
4. В П2 срабатывает FileSystemWatcher. П2 прочитывает, разбирает и выполняет команду.


smile Шутка. Читай про Remoting - это интересная шутка




--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 16.2.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



До ремоутинга руки так и не дошли.

А если два проекта (консольный и винформ) в одном солюшене? Это не меняет дела никак? smile


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1641 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.