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

Вниз

завершение Windows   Найти похожие ветки 

 
Leny   (2002-12-29 12:53) [0]

Добрый день, мне нужно отловить завершение Windows, чтобы сохранить данные из программы... Знаю, что Windows отсылает в этом случае сообщения wm_queryendsession, а как его отловить?


 
Big_Rom   (2002-12-29 12:58) [1]

написать обработчик wm_queryendsession :))


 
Leny   (2002-12-29 13:09) [2]

т.е процедуру?.. например:
Procedure TForm.WindowsClose(Var Msg:TMessage);
Begin
IF Msg.WParam=1 then Form.Close;
End;
тогда где указать получение сообщения wm_queryendsession?


 
Юрий Зотов   (2002-12-29 13:22) [3]

type
TForm1 = class(TForm)
...
private
procedure WindowsClose(Var Msg:TMessage); message WM_QUERYENDSESSION;


Только проще все делать в OnCloseQuery. Это сработает и при нормальном закрытии формы, и при выходе из Windows.


 
Song   (2002-12-29 17:51) [4]

http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=news;action=display;num=1040148061


 
vuk   (2002-12-29 18:13) [5]

WM_QUERYENDSESSION может и не прийти... Например, при вызове InitiateSystemShutdown с флагом bForceAppsClosed.


 
Юрий Зотов   (2002-12-29 18:40) [6]

> Song © (29.12.02 17:51)

Зашел. Посмотрел. Расстроился.

Пример глобального хука в ЧаВо по ссылке

http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=delphi;action=display;num=1033932228

принципиально неверен. Локальная переменная SysHook будет проинициализирована лишь в контексте одного-единственного процесса - того, который вызвал процедуру Hook и установил ловушку. В остальных она останется нулем и CallNexTHookEx не сможет работать правильно.

Ребята, ну нельзя же в FAQ (!!!) повторять все ту же уже всем надоевшую ошибку. Ведь она будет скопирована десятками (если не сотнями) неискушенных и получится больше вреда, чем пользы.

Предлагаю СРОЧНО заменить этот пример нормальным. Могу выслать готовый, чтобы не писать специально.



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

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

Наверх





Память: 0.45 MB
Время: 0.013 c
6-37251
OlegL
2002-11-14 11:15
2003.01.13
Как избежать ошибки


6-37236
Repeater
2002-11-01 12:46
2003.01.13
Можно ли перевести сокет из блокирующего в неблокирующий режим?


3-36931
Карелин Артем
2002-12-17 14:36
2003.01.13
Ошибка 179


14-37338
AL2002
2002-12-16 14:01
2003.01.13
Где будем Новый год встречать?


3-36991
Rust1970
2002-12-17 15:26
2003.01.13
как через ADO вызвать хрпроцедуру, которая пишет в BLOB (oracle)





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