Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

Определение завершения работы Windows   Найти похожие ветки 

 
Woolen   (2002-03-09 14:54) [0]

Народ, спасайте! Срочно нужно! Горю! Не знаю, как определить, что Windows завершает работу. Ситуация примерно такая. В OnCloseQuery прога выдает запрос пользователю на завершение работы, но при завершении Windows OnCloseQuery тоже вызывается. Как сделать, чтобы пользователь мог отменить завершение приложения в случае, если он его сам закрываеть, и в тоже время, чтобы прога определяла, если происходит завершение работы Windows и не выдавала запроса при этом? Пишу прогу на D6 для всех виндов, начиная с NT4.0. Т.е. NT4.0, 98, 2000, Me, XP.
Заранее благодарен.


 
Anatoly Podgoretsky   (2002-03-09 15:00) [1]

Windows посылает сообщения WM_QUERYENDSESSION и затем WM_ENDSESSION вот и создай для них обработчики


 
Woolen   (2002-03-09 16:07) [2]

Спасибо! Только один вопрос. А OnCloseQuery случаем не происходит при приеме сообщения WM_QUERYENDSESSION? А то получится тоже самое и никакой разницы не будет.


 
Suntechnic   (2002-03-09 17:17) [3]

>Woolen © (09.03.02 16:07)
Происходит. Потому как Windows не прерывает процесс путём TerminateProcess, а пытается его завершить корректно. Ты можешь поступить слудующим образом. Объявить в классе главной формы флажок, который будет показываеть, что приложение закрывается из-за выгрузки Windows. По умолчанию установи его в FALSE. В событии OnCloseQuery проверяй его. Если флаг установлен, тогда не выдавай подтверждение закрытия, а если нет, тогда выдавай. Затем лови сообщение WM_QUERYENDSESSION и устанавливай этот флаг....


 
y-soft   (2002-03-09 22:45) [4]

>Пишу прогу на D6 для всех виндов, начиная с NT4.0. Т.е. NT4.0, >98, 2000, Me, XP.

Надо еще учесть, что в Win9X/Me и WinNT/2000/XP алгоритм посылки этих сообщений ОС (WM_QUERYENDSESSION, WM_ENDSESSION) разный. Кроме того в WinNT SP6A возникает неприятный глюк, если приложение отвечает на сообщение отрицательно (См MSDN Q245148)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
14-39828
novomod
2002-03-29 19:04
2002.05.13
Файл. Sulfnbk.


14-39845
Shaman_Naydak
2002-04-01 12:19
2002.05.13
Подскажите, как мне поступить?!


14-39831
VID
2002-04-03 12:37
2002.05.13
ЖК Монитор - 2


3-39646
KirilAlex
2002-04-16 20:53
2002.05.13
Фильтрация по условию из подчиненой.


3-39672
wer
2002-04-17 19:08
2002.05.13
В запросе SUM не считает всё!





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