![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Суть беды:
1) Создал консольное приложение с паблик методом
2) Скомпилировал. 3) В приложении Windows Forms теперь надо как-то реализовать методы, которые а) запускал бы консольное приложение б) обращался бы к методу WriteMessage из консоли. Как? -------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET
Самый простой способ - поменять в свойствах своего проекта на Console Application, тогда консоль будет видна, и открывать и показывать форму в static void Main() |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
то есть стартовал отдельный процесс? -------------------- ![]() |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Не-не-не... тут немножко другое. У меня приложение Windows Form (назовём его А), а консольное приложение (Б) - отдельно. Я его хочу использовать Б для трассировки А. В А я добавил референс на Б, но никаких новых неймспейсов не появилось. Как обращаться из А к Б - непонятно...
Ага. Это сообщение отредактировал(а) VisualProgrammerNET - 22.12.2005, 15:06 -------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET
Использовать ProcessStartInfo.StandardInput, ProcessStartInfo.StandardOutput пробовал? |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Я такими вещами ещё не пользовался никогда...
-------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
||||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Сорри, опечатался. Должно было быть Process.StandardInput, Process.StandardOutput Если в двух словах, то примерно так:
|
||||
|
|||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
// здесь надо подождать, пока в консоли появятся данные
так вот в том-то и проблема, что непонятно, как в консоль эти данные передать -------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
А может вот так получится?
|
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
-------------------- 3 ГОДА НА |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
А нельзя ли всё же как-нибудь обратиться от одного приложения к другому? В смысле, из одного вызвать метод другого?
-------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET
Можно. Для этого есть такая штука как Remoting. Читай MSDN |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Да... где-то я натыкался на подобную штуку уже, когда бороздил интернет в поисках ответа на этот вопрос. Думал, можно будет без Remoting'а обойтись... ну да ладно
-------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Можно, вот так 1. Первая программа (П1) создает файл C:\Command.txt 2. Вторая программа (П2) ставит на него FileSystemWatcher П1 управляет П2 3. П1 пишет в файл строку вида Command param1 param2 и закрывает файл 4. В П2 срабатывает FileSystemWatcher. П2 прочитывает, разбирает и выполняет команду. |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
До ремоутинга руки так и не дошли.
А если два проекта (консольный и винформ) в одном солюшене? Это не меняет дела никак? -------------------- 3 ГОДА НА |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET,
Опиши задачу по-подробнее. Думаю, решение мы тебе найдем. |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Итак, значица...
В солюшене находятся: консольное (вспомогательное, для трассировки)(А) и виндоус-формс (Б) проекты. Во время действия Б, она передаёт открытому методу в А команду, вследствие чего в консоли А повляется новая текстовая строка. Пример. В приложении Б выполняется метод ObjectMove, по перемещению некого объекта. В реализации ObjectMove имеется строка, которая выполняет метод AddMessage из приложения А. Метод AddMessage заключается в том, что на консоль выводится строка типа "Object in B has is being moved". Собсно, вот что надобно получить. Может есть какие-нибудь другие методы? Я просто не в курсе, можно ли из виндового приложения вызывать консоль... -------------------- 3 ГОДА НА |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
А что мешает реализовать класс DiagnosticsHelper в консольном приложении, который имеет статические методы типа WriteMessage, записывающие в консоль сообщения, а потом добавить ссылку на это консольное приложение в Windows-приложении и использовать этот DiagnosticsHelper?
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET,
Вопрос 1: а почему 2 отдельных приложения. В описанном тобой сценарции я не вижу такой необходимости. Создаешь консольное приложение, которое открывает окно, и все будет ок. Вопрос 2: желание выводить в консоль вызвано ностальгией по ДОСу?
Ты знаешь, как в неконсольном приложении открыть окно консоли? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Никакого смысла в этом нет, т.к. на тип приложения (Windows application) наличие ещё одного референса никак не повлияет, а вызовы Console.WriteXXX ни к чему не приведут. Кроме того, добавлять в exe референс на exe можно только начиная с Framework 2.0 да здравствует WinAPI ! с его помощью мы сотворим маленькое чудо
-------------------- ![]() |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
О чудо! Я знал, что WinAPI нам точно поможет, но ты привлек его! |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
Насколько я понял из последних тем на форуме, WinAPI может всё
-------------------- 3 ГОДА НА |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
См. в разделе по С++
-------------------- ![]() |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
VisualProgrammerNET, да, но главное - не изборетать велосипед. Для этого надо знать более 6000 классов .NET framework
Добавлено @ 15:07 Так что выбирай, что лучше изучать более плотно |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |