Главная страница
    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.007 c
1-39779
Мало опыта
2002-04-28 20:20
2002.05.13
Сохранить.


3-39645
DPashin
2002-04-17 08:17
2002.05.13
Не могу скопировать Blob-поле


7-39863
besen-ok
2002-02-14 12:54
2002.05.13
COM порт порекомендуйте компоненту !


6-39814
Aleksey_K
2002-03-01 16:24
2002.05.13
SMTP


1-39776
alxx
2002-04-28 21:14
2002.05.13
Опять по поводу библиотеки типов





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