Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Подземелье Магов
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  19:05[Войти] | [Зарегистрироваться]

Обсуждение материала
Hooks - аспекты реализации
Полный текст материала


Цитата или краткий комментарий:

«... Моя обзорная статья на тему вариантов использования динамически компонуемых библиотек (DLL) вызвала множество вопросов, большая часть которых касалась использования глобальных ловушек (Hook) и размещению разного рода ресурсов в DLL. О ресурсах поговорим в следующий раз, а пока попробуем разобраться с ловушками. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.

Результаты голосования
Оценка содержания

  Содержит полезные и(или) интересные сведения
[1]1083.3%
 
  Ничего особенно нового и интересного
[2]00%
 
  Написано неверно (обязательно укажите почему)
[3]216.7%
 
Всего проголосовали: 12

Оценка стиля изложения

  Все понятно, материал читается легко
[1]888.9%
 
  Есть неясности в изложении
[2]111.1%
 
  Непонятно написано, трудно читается
[3]00%
 
Всего проголосовали: 9




Смотрите также материалы по темам:
[Системные ловушки (HOOK)]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 15

30-04-2010 07:56
Здравствуйте. Спасибо за замечательную статью, но есть проблемка. У меня все нажатые в основном дублируются а вообще часто вводится по 3-4 копии.
Подскажите как с этой проблемой бороться?


28-07-2009 10:38
Аккуратнее, написано верно, но в примерах есть ошибки реализации.
См., например »вопрос КС №57810«

Да, ошибочка досадная, споткнулся уже))

А в целом статья замечательная.


25-02-2008 03:01
Кто нибудь поправит статью? А то очень нехорошо получается:

(code : integer; wParam : word; lParam : longint)


И ещё раз - LowLevel's прекрасно ставятся из .эхэ


25-12-2007 06:08
Аккуратнее, написано верно, но в примерах есть ошибки реализации.
См., например »вопрос КС №57810«


05-07-2006 02:16
Ссылка на архив поправлена


04-07-2006 21:43
ссылка на зип не работает


11-05-2004 19:04
Хуки по крайней мере в вин200 можно ставить из программы!!! необязательно длл и всякое такое!!! МСДН по этому поводу говорит что процедурам обработки хуков __посылаются__ мессаги и их обрабатывает установленная процедура в потоке установившем данный хук, из чего следует что у хук должен ставить поток имеющий очередь сообщений.

короче конструкция:
Function LowLevelMouseProc(
     nCode  : LongInt ;     // hook code
     wParam : WPARAM ; // message identifier
     lParam : LPARAM  // message data
    ) : LRESULT; stdcall;
begin
//-----
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  HHook:=SetWindowsHookEx(
   WH_MOUSE_LL,
   LowLevelMouseProc,
   GetModuleHandle('HookInstaller.exe'),0);
end;
где LowLevelMouseProc процедура описанная в этом же модуле.
вполне работает!


03-09-2003 15:40
отдельные ловушки с успехом могут жить в EXE (а не в DLL).
например ловушки SetWinEventHook и WH_KEYBOARD_LL

по ссылке http://rattlesnake.at.box.sk/newsread_print.php?newsid=193 лежит пример ловушки WH_KEYBOARD_LL без DLL. но автор статьи ссылки  заблуждается, думая, что так можно сделать любую WH_* ловушку.





14-07-2003 13:27
В примере клавиатурного хука введенные с клавиатуры символы отображаются в основном дважды, иногда больше! Это только у меня? Можнио ли как-то от этого избавиться?
Сообщение не подписано


05-12-2002 17:02
Небольшое дополнение из собственных исследований:

В системах Windows NT/Win2k/WinXp одновременно могут быть установлены максимум 32 разные DLL, содержащие глобальные хуки. Это хуки, установленные функциями SetWindowsHookEx, SetWinEventHook и RegisterUserApiHook (только для Windows XP).
Я понимаю, что в большинстве случаев этот предел вряд ли удастся превысить, но все же :-)

С уважением,


25-09-2002 14:53
Архив не распаковывается.И размер 12к вместо 76...


10-04-2002 22:04
Молодец, Алеша!
Так держать!
Береги свое здоровье!


27-03-2002 18:37
Отличный материал ! Статья помогла мне наконец-то разобраться с этими хуками и механизмом распределённых адресных пространств.
Чувствуется проффесиональный подход. К тому же приятно, что автор в том же универе, что и я учится.


25-03-2002 18:18
>> Erik Ivanov:
Хотел что бы всё было понятно даже совсем 'непродвинутым' программистам. От того, наверное, и излишняя скурпулёзность в объяснениях, которая, возможно, приводит к путанице.
В следующий раз постараюсь быть 'проще' :)


22-03-2002 14:33
Стиль немного тажеловат, примеры слегка запутаны. Типа поиди на лево сверини на прваво, после 100м вперед и еже зар на лево после третего поворота.


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Два кольца, два конца, посередине гвоздик.
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.

Оценка содержания
 
Содержит полезные и(или) интересные сведения
 
Ничего особенно нового и интересного
 
Написано неверно (обязательно укажите почему)


Оценка стиля изложения
 
Все понятно, материал читается легко
 
Есть неясности в изложении
 
Непонятно написано, трудно читается

Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

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

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования