(I ' Я искал SO-ответы и не нашел четкого решения этой проблемы.)
Я работаю над программой MFC GUI. Эта программа запускает различные дочерние программы, включая консольную программу и командный сценарий оболочки (.cmd).
Первоначально она отображала одно окно графического интерфейса пользователя и одно окно консоли (созданное с помощью AllocConsole
), поскольку из консоли выводится много дочерние процессы. Но многие пользователи жаловались на окно консоли, поэтому мы решили скрыть окно консоли.
Сначала попробовали, как показано ниже:
if (AllocConsole())
{
::ShowWindow(::GetConsoleWindow(), SW_HIDE);
}
Хорошо, окна консоли нет, но есть видимое мерцание во время создания консоли.
Первоначально он отображал одно окно графического интерфейса пользователя и одно окно консоли (созданное с помощью AllocConsole
), потому что дочерние процессы выводят много сообщений консоли. Но многие пользователи жаловались на окно консоли, поэтому мы решили скрыть окно консоли.
Сначала попробовали, как показано ниже:
if (AllocConsole())
{
::ShowWindow(::GetConsoleWindow(), SW_HIDE);
}
Хорошо, окна консоли нет, но есть видимое мерцание во время создания консоли.
Первоначально он отображал одно окно графического интерфейса пользователя и одно окно консоли (созданное с помощью AllocConsole
), потому что дочерние процессы выводят много сообщений консоли. Но многие пользователи жаловались на окно консоли, поэтому мы решили скрыть окно консоли.
Сначала попробовали, как показано ниже:
if (AllocConsole())
{
::ShowWindow(::GetConsoleWindow(), SW_HIDE);
}
Хорошо, окна консоли нет, но есть видимое мерцание во время создания консоли.
Я пробовал несколько опций CreateProcess
для создания дочернего процесса, чтобы полностью предотвратить отображение окна консоли, но в итоге потерпел неудачу, и я думаю, что это практически невозможно.
Это не имеет большого значения. Мы можем игнорировать временное мерцание окна при запуске.
Но разве невозможно полностью скрыть дочернее окно консоли?