| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как программе узнать что ее... |
| Автор: DriveSoftware 17.1.2004, 23:44 |
| О собственно как узнать программе что ее закрывают из дистпетчера задач, т.е. через Ctrl+Alt+Del |
| Автор: Vex 18.1.2004, 00:41 |
| Сначало WM_CLOSE Потом WM_DESTROY - окноуже невидимо, но еще активно Добивается приложение сообщением WM_NCDESTROY |
| Автор: DriveSoftware 18.1.2004, 00:54 |
| Vex а как тогда при завершении винды? |
| Автор: Vex 18.1.2004, 01:31 | ||
Не знаю, поищи утилитки по типу Spy++. которые сохраняют логи. |
| Автор: Cashey 18.1.2004, 01:46 | ||||
Если тебе нужно обработать завершение работы приложения используй конструкцию
а если тебе надо узнать именно закрытие аварийное, а не стандартное, тогда, наверное, лучше так: во всех предусмотренных закрывающих методах присваеваешь какой-нибудь переменной значение true и дальше
таким образом ясно, что выход аварийный и нужно его как-то обработать прим. закрытие крестиком - тоже будет считаться аварийным. |
| Автор: <Spawn> 18.1.2004, 06:20 | ||
попробуй WM_QUERYENDSESSION |
| Автор: Полудненко Олег 18.1.2004, 10:07 |
| DriveSoftware Поидее в любом случае возникает собатие CloseQuery, а затем OnClose |
| Автор: x77 18.1.2004, 14:20 |
| это делается путём установки ExitProc. в ней проверяешь две переменные: ExitCode и ErrorAddr. 1. в случае нормального завершения: ExitCode = 0, ErrorAddr = nil 2. в случае завершения по Halt: ExitCode содержит значение, переданное в Halt. Соответствует PostQuitMessage (ExitCode), причём Application.Terminate соответствует PostQuitMessage (0), ErrorAddr = nil. 3. в случае завершения в результате ошибки: ExitCode - код ошибки, ErrorAddr: адрес ошибки (т.е. не равен nil) |