Вниз
Скачать: CL | DM;

завершение консольног приложения   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
9-1141844443
Mir
2006-03-08 22:00
2007.01.14
Преобразование круга в квадрат


2-1167132325
LPal7
2006-12-26 14:25
2007.01.14
прооблемы с blob полем


15-1166995339
PHPdeveloper
2006-12-25 00:22
2007.01.14
опять запрос, но другой вопрос :)


2-1166622346
dreamse
2006-12-20 16:45
2007.01.14
Непонятное что то с поддежкой ICO


1-1164379420
Krants
2006-11-24 17:43
2007.01.14
Сравнение строк




   Наверх