Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HOOK 
:(
    Опции темы
Spawn
Дата 25.9.2002, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 278
Регистрация: 3.6.2002

Репутация: нет
Всего: нет



Некоторое время назад на этом форуме Vit приводил примеры с использованием Hook(Автора не помню сейчас).
Пожалуйста, помогите разобраться с этим кодом:

var
HookHandle: hHook;

function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
begin
if Code >= 0 then begin //Я ни как не пойму для чего этот параметр???
  result := 0;
  msg := Pointer(LParam);//Сдесь насколько я понимаю msg поучает указатель на LParam

  with Form1 do // Обработка сообщений, которые необходимо отловить
    case msg.message of
      WM_MOUSEMOVE: Caption := IntToStr(msg.ParamL) + #32 + IntToStr(msg.ParamH);
      WM_LBUTTONDOWN: CheckBox1.Checked := true;
      WM_LBUTTONUP: CheckBox1.Checked := false;
      WM_RBUTTONDOWN: CheckBox2.Checked := true;
      WM_RBUTTONUP: CheckBox2.Checked := false;
      WM_KEYUP: CheckBox3.Checked := false;
    end;
end else
  result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;

Я вот, например хочу отловить нахатие клавы, но в хелпе написано, что виртуальный код клавы находится в WParam(a msg указывает на LParam). А если попытаться сделать так:
msg:=Pointer(WParam) то это приведет к зависанию.
Пожалуйста, подскажте ответ на возникшие вопросы.
PM MAIL   Вверх
FdX
Дата 26.9.2002, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



Цитата
Я вот, например хочу отловить нахатие клавы

Дык это ж для мыша у тебя :) Когда хук ставишь, там один параметр для клавы другой. А в целом почти так. Все должно пахать
Цитата
Я ни как не пойму для чего этот параметр

Нужен... Если уберешь, пахать не будет
PM MAIL ICQ   Вверх
Mikel
Дата 26.9.2002, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Параметр, можно сказать нужен для того, чтобы понять как его обрабатывать.
А если надо про клаву, то
FAQ
И здесь в FAQ было.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.