Главная страница
    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.014 c
2-1166679541
Action
2006-12-21 08:39
2007.01.14
Интересный вопрос. Создаю компонент на основе TPanel


15-1166600761
infom
2006-12-20 10:46
2007.01.14
Сжатие картинок в документах MS Word


4-1156830030
DelphiLexx
2006-08-29 09:40
2007.01.14
Как узнать использует ли приложение DoubleBuffered


15-1166780011
IMHO
2006-12-22 12:33
2007.01.14
Передать ссылку с Authorization


2-1166721659
Tort
2006-12-21 20:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский