Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.012 c
2-1167047585
Биритм
2006-12-25 14:53
2007.01.14
Как нарисовать график


2-1166882884
kroner
2006-12-23 17:08
2007.01.14
дочерняя форма в dll


2-1166769426
Игорь М.
2006-12-22 09:37
2007.01.14
Локальная сеть


15-1166856820
Оззя
2006-12-23 09:53
2007.01.14
К тов. Подгорецкому на сайт попасть


15-1166507586
IMHO
2006-12-19 08:53
2007.01.14
Бунт на корабле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский