Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Очередь сообщений [D6, Win2k]


Holy ©   (2003-02-27 12:08:00) 

Помогите решить следующую проблему !!! Есть программа от третьего производителя, которая после некоректного завершения работы долго переиндексирует БД. Надо из ее очереди сообщений удалить посылаемые ей WM_QueryEndSession и WM_EndSession другой программой.


Clickmaker   (2003-02-27 14:46:00) [1]

PeekMessage(Msg, ... ,PM_REMOVE)


Holy   (2003-02-27 14:19:00) [2]

И тогда вопрос как исправить очередь событий другого приложения ?


Clickmaker   (2003-02-27 14:14:00) [3]

и то правда...
Тогда ставить хук в DLL
SetWindowsHookEx(WH_GETMESSAGE, ...
определить hwnd "плохой" программы и отсеивать WM_ENDSESSION
Другого варианта не вижу


Holy   (2003-02-27 14:08:00) [4]

2Clickmaker

Да, но это сообщение отправляется всем програм и на момент, когда мне достанется Query ей может уже прийти EndSession.
Поэтому я считаю, что нужно следить за очередью событий для той проги, но я не знаю как из нее убрать чего не нужно


Clickmaker   (2003-02-27 14:02:00) [5]

Так скорей всего твоя программа должна поймать WM_QUERYENDSESSION и не возвращать TRUE, пока не убедится, что все Ок. Как уверяет MS, винда не вырубится пока все приложения не вернут TRUE в ответ на это сообщение.


Holy   (2003-02-27 13:59:00) [6]

2Clickmaker

Моя программа следит за одним или несколькими файлами журналов по-моему (проект пишется на двоих поэтому кусок контроля мне до конца не известен)


Clickmaker   (2003-02-27 13:53:00) [7]

а как проверяется, что все условия выполнены ?


Holy   (2003-02-27 13:51:00) [8]

2Clickmaker

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


Clickmaker   (2003-02-27 13:44:00) [9]

глупый вопрос - а зачем удалять посылаемые ей WM_QueryEndSession и WM_EndSession другой программой ?


Holy   (2003-02-27 13:38:00) [10]

Up!
Помогите, пжалста !!!


Наверх

Титульная страница Поиск, карта сайта Написать письмо