При закрытии консоли кликом по "крестику", приложение падает :(
Вроде слегка разобрался
Виндузятникм вроде некошерно использовать консоль вообще, зачем ты это делаешь, отрок?
![](/images/graemlins/smile.gif)
Понимать что оно там на экран выдает и кормить ему клавиатурный ввод так, чтобы она думала что это делает пользователь.
вполне кошерно. просто надо уметь её правильно готовить (например, прятать)
+1, смотрим например
![](/images/graemlins/wink.gif)
Вообще наверно лучше перехватывать ввод и вывод консоли в свое окно, а консоль спрятать вообще.
Задизейбли крестик у консольного окна и всеимхо, для консольных окон SetWindowLong не пашет.
![](/images/graemlins/wink.gif)
#include <windows.h>
int main
{
HWND hWnd;
hWnd = FindWindow (NULL, "cmd title");
if (hWnd == 0)
{
MessageBox (0, "Window not found", "Message", MB_OK);
return 0;
}
EnableMenuItem (GetSystemMenu (hWnd, false SC_CLOSE, MF_BYCOMMAND || MF_GRAYED);
}
EnableMenuItem (GetSystemMenu (hWnd, false SC_CLOSE, MF_BYCOMMAND || MF_GRAYED);Глюк-с, должно быть
EnableMenuItem (GetSystemMenu (hWnd, false SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
Блин, надо доки С++ по унарным и бинарным операциям глянуть - как с Delphi пересел, так нифига и не смотрел
![](/images/graemlins/frown.gif)
Оставить комментарий
vertyal17
Ситуация такая:Есть GUI приложение, которое запускает консольное приложение.
Для этого, вначале создается консоль, а затем запускается другое приложение таким образом, что консоль наследуется.
GUI Программа при этом консоль не закрывает, для того чтобы читать с нее, что пишет программа, а закрывает только в двух случаях - по кнопке пользователя ("не хочу больше перехватывать выходные данные с консольного приложения" или по событию "консольная программа завершена".
Все плохо, если пользователь закрывает консоль крестиком. Я так понял, что основная программа при этом также получает сигнал завершить работу. Хочеться это както предотвратить, как можно это сделать?