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

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

Как обойти такую ситуацию


AFROLOV ©   (2002-03-26 13:09:00) 

Привет всем.
Решается следующая задача: надо отслеживать нажатия клавиш пользователем в Word. Иногда ему надо не давать вводить определенные символы. Для анализа его действий приходится обращаться к Word созданному
MSWord := CreateOleObject("Word.Application");
В глобальном Hook я перехватываю сообщения от клавиатуры идущие к MSWord. И если пользователь нажал то, что ему не положено сообщение из очереди должно изымаеться.
Проблема в следующем:Анализ того что ввел пользователь может быть довольно продолжительным. До того как сообщение будет пропущено далее надо решить: можно его пускать или нет.
Я посылаю сообщение

SendMessage(ShareInf^.AppWndHandle,ShareInf^.KeyboardMsgId,WPARAM(MapH),code); своему приложению для анализа кода клавиатуры.

Вот тут и возникает проблема - сделать что либо с Word не удается(программа просто отвисает). Похоже возникает такая ситуация: все действия осуществляются через сообщения, сообщения помещаются в очереды но очередь не движится, т.к в процедуре анализа ожидается реакция на сообщения помещенные в очередь после анализируемого.


Севостьянов Игорь   (2002-03-26 13:56:00) [1]

Смотри PeekMessage, GetMessage и так далее... Просто щас не припомню...
Все вопросы по мылу


Наверх

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