| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Как отловить закрытие Windows? |
| Автор: Петров Андрей 24.6.2004, 13:53 |
| Здравствуйте уважаемые! Необходимо сделать резервную копию БД при закрытии Windows. Вопросы в следующем 1) Как отловить событие закрытия Windows? 2) Как успеть на него среагировать т.е. преостановить закрытие и успеть заархивировать, продолжив после этого закрытие? Ответы лучше на мыло Jellfish@foxclub.ru |
| Автор: Chingachguk 26.6.2004, 07:51 |
| Может быть, тебе подойдет перехват ExitProcess ? ... Еще возможен сервис, смотрящий за окнами (FindWindow по имени окна). Надо выяснить имя окна закрытия (ALT+F4) и тогда... |
| Автор: oleg1973 26.6.2004, 10:24 |
| проблема в том что в разных вындоса через разные апи выключение вындоса происходит ExitWindows ExitWindowsExec SHExitWindowsEx в НТ/ХР есть непосредственно команда SHUTDOWN так что ловить придется все и сразу лучше в самой проге сделать что если к окну приходит месадж типа закрывайся, она базу сохраняет |
| Автор: Jin X 27.6.2004, 18:44 |
| Никаких API не нужно ничего перехватывать В обработчике окна (если окон нет, создаёшь невидимое) проверяешь сообщения: 1. WM_ENDSESSION и WM_DESTROY. 2. Если интересует Hibernate и Suspend, то WM_POWERBROADCAST. При этом wParam == PBT_APMSUSPEND при засыпании и wParam == PBT_APMRESUMESUSPEND при пробуждении. При их возникновении делаешь что нужно и выходишь из обработчика с EAX=0. |
| Автор: oleg1973 28.6.2004, 10:38 |
| Jin X ну блин земляк и я о томже |
| Автор: Oleg_SK 10.12.2004, 22:19 |
| Jin X 2. Если интересует Hibernate и Suspend, то... Дополнение: это же сообщение поступает и при переходе ATX-компа в режим SoftOff (т.е. программное выключение), после нажатия кнопки POWER. |