Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Вниззавершение консольног приложения Найти похожие ветки
← →
ezorcist (2006-12-23 22:12) [0]есть консольное приложение типа
begin
...
//стандартный пример
While GetMessage(msg,0,0,0) Do
Begin
Translatemessage(msg);
dispatchmessage(msg);
End;
End.
Как отреагировать (выполнить собственную процедуру OnClose) на его закрытие?
← →
palva © (2006-12-23 22:25) [1]Между двумя последними end вставить код обработки попытки закрытия, а потом, если нужно продолжить, сделать goto на метку перед циклом.
← →
ezorcist (2006-12-23 22:35) [2]вставил, но при закрытии туда не приходит.... ?
← →
Anatoly Podgoretsky © (2006-12-23 22:40) [3]> ezorcist (23.12.2006 22:35:02) [2]
Программа закончится, когда в очередь сообщений поступит сообщение WM_QUIT
← →
palva © (2006-12-23 22:47) [4]> вставил, но при закрытии туда не приходит.... ?
Ну значит программу никто и не пытается закрыть. Или вы пытаетесь написать реакцию на снятие из списка процессов?
← →
ezorcist (2006-12-23 23:09) [5]надо вызвать OnClose когда программа будет завершена при выключении ПК.
[3] можно пример как проверить ? if msg = WM_QUIT then явно не подойдет :/
← →
Virgo_Style © (2006-12-24 11:21) [6]WM_QUERYENDSESSION / WM_ENDSESSION ?
← →
palva © (2006-12-24 12:06) [7]ezorcist (23.12.06 23:09) [5]
Проверить можно так
if msg.message = WM_QUIT (или = 18)
Но беда в том, что система не посылает консольному приложению сообщений при выключении. Скорее всего она посылает ему на stdin комбинацию Ctrl-C.
Наверно можно попробовать вместо консольного приложения сделать оконное приложение с невидимым окном, а уже в нем создать консоль. У такого приложения будет стандартный цикл обработки сообщений и оконная функция, из которой можно организовать выход на OnClose.
← →
palva © (2006-12-24 12:08) [8]А может и посылает, если зарегистрирован класс окна, но это надо пробовать. Или читать. Или спросить у ИШ.
← →
ezorcist (2006-12-24 13:22) [9]по ходу не приходит..... просто хотелось сэкономить на Forms :(
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c