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

Вниз

WM_ENDSESSION...   Найти похожие ветки 

 
Alex No   (2003-08-26 10:25) [0]

Добрый день. Научите, как заставить правильно отработать приложение при завершении работы винды? Программа скрыта с таскбара. При попытке завершить работу Windows пользователем либо какой-то другой программой, винда не завершается, пока запущена моя прога. Почитал FAQов всяких, по-разному делал - максимум, что получилось - это закрытие проги.
Буду благодарен за рабочий примерчик ;)


 
plotn   (2003-08-26 10:39) [1]

Да да да да да!!!!! И я!!!!

Я с этим, извиняюсь, трахаюсь тоже долго и не знаю что делать...

читал и озеровский фак и пытался оба события обрабатывать (+queryendsession) и все равно хрен! Юзера винду по 2 раза завершают. Обидно до слез.


 
Alex No   (2003-08-26 10:43) [2]

Его фак я тоже читал.
И еще это
http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=di splay;num=1029002167
все так просто и красиво написано, но чего-то не получается.


 
Внук   (2003-08-26 10:47) [3]

А товарища Рихтера читать не пробовали?


 
Alex No   (2003-08-26 10:56) [4]

Которого из этих?
http://www.yandex.ru/yandsearch?rpt=image&text=%D0%E8%F5%F2%E5%F0


 
Внук   (2003-08-26 11:04) [5]

Которое http://www.podgoretsky.com/classics.html

Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows
Джеффри Рихтер, четвертое издание.

Если только память меня не подводит (а она может), именно там подробно написано, как задача должна себя корректно завершать по окончании работы ОС.


 
Song   (2003-08-26 11:14) [6]

2Alex No (26.08.03 10:43) [2]
Если при выходе из винды надо в программе сделать что-то объёмное по времени, то надо использовать WM_QUERYENDSESSION. В остальном только обработка WM_ENDSESSION у меня работает. Проверял на NT 4.0, w98, XP.


 
Alex No   (2003-08-26 11:27) [7]

При закрытии проги выполняется скидывание параметров формы в конфиг (в файл) + если активно POP3 соединение, то разорвать его. Последнее бывает затягивается секунд на 20 (в зависимости от скорости и качества соединения).
я уже пробовал так делать?
(вмести и раздельно пробовал)

protected
procedure IsWindowsShutDown(Var Msg:TMessage); message WM_ENDSESSION;
procedure IsWindowsQueryShutDown(Var Msg:TMessage); message WM_QUERYENDSESSION;

procedure TMain_Form.IsWindowsQueryShutDown(var Msg : TMessage);
begin
inherited;
WriteLog(true, true, "WINDOWS", "ОС Windows завершила работу");
Msg.WParam:=1;
Msg.Result:=1;
Main_Form.Close;
end;
//Это отрабатывается, когда форма видна

//И так
procedure TMain_Form.IsWindowsShutDown(Var Msg:TMessage);
Begin
inherited;
//IF Msg.WParam=1 then Main_Form.Close;
msg.WParam:=1;
Msg.Result:=1;
Main_Form.Close;
End;
//А это, когда не видна форма на таскбаре

В обоих случаях винда не перегружается.
Вот и хочу выяснить, что не доделываю и что не прально делаю.


 
plotn   (2003-08-26 12:04) [8]

я тоже вышеназначенные заклинания писал. и примерно похожие. и аппликейшн.терминэйт вместо форм.клозе.

единственное что помогает хотя бы срубить аппликацию это ее притушить в любом из обработчике, но винде это глубоко пофиг.



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

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

Наверх




Память: 0.46 MB
Время: 0.009 c
1-8410
Vladimir SVM
2003-10-22 13:08
2003.11.03
Установка Delphi в Windows XP


4-8725
xman
2003-08-28 21:02
2003.11.03
Клавиша


3-8253
ИМХО
2003-10-14 11:21
2003.11.03
ADO, строка подключения и диск D


14-8628
Igor_thief
2003-10-14 13:25
2003.11.03
Интерфейсы


14-8648
Knight
2003-10-12 00:08
2003.11.03
Что вы думаете, про альтруизм и альтруистов?





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