Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

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

 
alexproger ©   (2004-09-12 23:08) [0]

Доброго всем времени суток!

Такая вот проблема. Известно, что для перехвата сообщений можно (и нужно ;)) ) использовать ловушки. НО. По какой-то причине эти ловушки не срабатывают в случае меню, оформленных как в Delphi 7. Удалось обнаружить, что в этом случае необходимо использовать WinEvents. Но написано о WinEvents не очень понятно (по "мелкомягкому" ;)) ). Так вот не могли бы помочь чем либо по этой технологии. Задача же стоит простая - постороннему (моему) приложению необходимо получать информацию о выбранном элементе меню в Delphi.

Заранее спасибо.


 
Fay ©   (2004-09-13 04:22) [1]

Все слова отдельно - понимаю. Мо общая картина не вырисовывается.
М.б. я верю, что Вы очень крутой программер.Так что скажите просто - что надо?

P.S.
>> Но написано о WinEvents не очень понятно (по "мелкомягкому" ;))
Можно поподробнее?


 
Apolo ©   (2004-09-13 10:25) [2]


> alexproger ©  


ну ты написал.... как я понял тебе надо описание обьекта типа событие (events)

P.S. на будущее - описывай проблему четко!

Выдрал из маленького хелпа прилагаемого к диску Delphi 7:

Объект типа событие (event) — простейший выбор для задач синхронизации. Он подобен дверному звонку — звенит до тех пор, пока его кнопка находится в нажатом состоянии, извещая об этом факте окружающих. Аналогично, и объект может быть в двух состояниях, а "слышать" его могут многие потоки сразу.

Класс TEvent (модуль SYNCOBJS.PAS) имеет два метода: setEvent и ResetEvent, которые переводят объект в активное и пассивное состояние соответственно. Конструктор имеет следующий вид:

constructor Create(EventAttributes: PSecurityAttributes;  

ManualReset, InitialState: Boolean; const Name: string);

Здесь параметр initialstate — начальное состояние объекта, ManualReset — способ его сброса (перевода в пассивное состояние). Если этот параметр равен True, событие должно быть сброшено вручную. В противном случае событие сбрасывается по мере того, как стартует хоть один поток, ждавший данный объект.

На третьем методе:

TWaitResult = (wrSignaled, wrTimeout, wrAbandoned, wrError);  

function WaitFor(Timeout: DWORD): TWaitResult;

остановимся подробнее. Он дает возможность ожидать активизации события в течение Timeout миллисекунд. Как вы могли догадаться, внутри этого метода происходит вызов функции waitFotsingieObject. Типичных результатов на выходе waitFor два — wrsignaied, если произошла активизация события, и wrTimeout, если за время тайм-аута ничего не произошло.

Примечание  

Если нужно (и допустимо!) ждать бесконечно долго, следует установить параметр Timeout в значение INFINITE.


 
Polevi ©   (2004-09-13 11:37) [3]

WinEvents :)))


 
alexproger ©   (2004-09-18 00:27) [4]

Речь идёт о функции SetWinEventHook. Необходим пример её использования.



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

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1096381121
AlexXn
2004-09-28 18:18
2004.10.24
Оракл тупит


14-1096643578
Anatoly Podgoretsky
2004-10-01 19:12
2004.10.24
Слухи о защищенности Оперы и Мозиллы оказались сильно преувеличен


1-1097197346
Артем К.
2004-10-08 05:02
2004.10.24
Сравнение двух IP-адресов


3-1096270335
Sectey
2004-09-27 11:32
2004.10.24
Запись в таблицу не зависимо, отменена или подтверждена транзакци


14-1096876667
Доброжелатель
2004-10-04 11:57
2004.10.24
Зарплата