Используя Win32 API в Visual C ++, я хочу создать программу в подсистеме Windows, которая выделяет консоль с AllocConsole
и пишет в него с WriteConsole
, Однако если пользователь закрывает консоль, процесс должен продолжаться в фоновом режиме. Я не могу этого добиться. Когда в строке заголовка консоли нажимается X, процесс завершается.
Есть ли какой-то конкретный способ сделать это?
Заранее спасибо!
Ключ должен ответить на Событие консоли управления это возникает, когда пользователь пытается закрыть консоль. Вы можете позвонить FreeConsole отсоединить вашу программу от консоли и позволить консоли быть уничтоженной. Тот должен продолжайте работу своей программы.
Дополнительная информация:
Если процесс завершается, когда HandlerRoutine
выходы, то мое предложение не сработало, как ожидалось. Если это так, то у вас могут быть проблемы. Вы можете попробовать перехватить системное сообщение SC_CLOSE и сделать FreeConsole
там, прежде чем передать сообщение. Тот может быть работать, хотя я не знаю, что он будет делать, если пользователь нажимает Ctrl + C или Ctrl + Break.
Проблема в том, что обработчик управления выходит из процесса. Это может быть то, что зовет FreeConsole
в HandlerRoutine
слишком поздно.
Других решений пока нет …