Пользователь должен закрыть выделенную консоль процесса, не выходя из процесса?

Используя Win32 API в Visual C ++, я хочу создать программу в подсистеме Windows, которая выделяет консоль с AllocConsole и пишет в него с WriteConsole, Однако если пользователь закрывает консоль, процесс должен продолжаться в фоновом режиме. Я не могу этого добиться. Когда в строке заголовка консоли нажимается X, процесс завершается.

Есть ли какой-то конкретный способ сделать это?

Заранее спасибо!

1

Решение

Ключ должен ответить на Событие консоли управления это возникает, когда пользователь пытается закрыть консоль. Вы можете позвонить FreeConsole отсоединить вашу программу от консоли и позволить консоли быть уничтоженной. Тот должен продолжайте работу своей программы.

Дополнительная информация:

Если процесс завершается, когда HandlerRoutine выходы, то мое предложение не сработало, как ожидалось. Если это так, то у вас могут быть проблемы. Вы можете попробовать перехватить системное сообщение SC_CLOSE и сделать FreeConsole там, прежде чем передать сообщение. Тот может быть работать, хотя я не знаю, что он будет делать, если пользователь нажимает Ctrl + C или Ctrl + Break.

Проблема в том, что обработчик управления выходит из процесса. Это может быть то, что зовет FreeConsole в HandlerRoutine слишком поздно.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru