THE-CODER-SALEH Ответов: 1

Как создать несколько консолей для одного приложения в VB.NET


у меня есть vb.net консольное приложение
но я хочу заставить его открыть другую другую консоль
из другого модуля, если это возможно

Что я уже пробовал:

я нашел код на c++, но я хочу, чтобы он был внутри vb.net

https://www.codeproject.com/Articles/13368/Multiple-consoles-for-a-single-application

Dotnet_Dotnet

сэр попробуйте
Dim proc как новая система.Диагностика.Процесс()

proc = процесс.Начало("d:\windows\notepad.exe", "")

ZurdoDev

Я предлагаю опубликовать его в качестве решения.

THE-CODER-SALEH

я не понял что вы имеете в виду под публикацией

THE-CODER-SALEH

этот код не открывает новую консоль
он открывает приложение Блокнот

ZurdoDev

Но разве вы не можете понять, как изменить его, чтобы открыть приложение, которое вы хотите?

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Поскольку это был интересный вопрос, я немного покопался.

Процесс может быть связан только с одной консолью. Вы не можете иметь несколько окон консоли, открытых одновременно для одного и того же процесса. Если ваш процесс отсоединяется от существующей консоли, а AllocConsole-от другой, то первое окно консоли будет уничтожено.

Я знаю, о чем ты просишь. Так как же эта библиотека делает это? Большой ключ к разгадке-это то, что я выделил выше. Библиотека запускает другой процесс, называемый ConsoleLoggerHelper.exe, с помощью которого он затем открывает трубку, чтобы поговорить с ней. Труба предназначена для "межпроцессной связи". Второй процесс просто прослушивает канал для любых сообщений, отображаемых в его собственном окне консоли.

Это понятие относительно легко понять. Реализация его немного сложнее. То, что вам нужно исследовать, - это не то, как выделить окно консоли. Это то, как межпроцессная коммуникация работает по трубам.