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

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

hook [D7, WinXP]


dikiy ©   (2005-12-04 14:07:00) 


var
 Hook: HHook;
function GetMsgProc(code: integer; wParam: Longint; lParam:
Longint): longword; stdcall;
//начало выполнения
procedure TForm1.FormCreate(Sender: TObject);
begin
 Hook:=SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, 0, 0);
end;
function GetMsgProc(code: integer; wParam: Longint; lParam:
Longint): longword; stdcall;
begin
 if code< 0 then
  begin
    result:=CallNextHookEx(Hook,code,wParam,lparam);
    Exit;
  end;
 if ( PMsg(lParam).message  = wm_char)then
 begin
   //обработка пойманого сообщения
   Form1.Memo1.Lines.Add('a');
 end;
 result:=0;
 CallNextHookEx(Hook,code,wParam,lparam);

end;


Пытаюсь поймать wm_char, но на него не срабатывает.
Может надо использовать другой тип ловушки(с возможностью изменения сообщения)?


Lamer@fools.ua   (2005-12-04 14:56:00) [1]

>> dikiy   (04.12.05 14:07)

Вы пытаетесь установить глобальную ловушку, а глобальная ловушка такого типа должна находиться в отдельной библиотеке (DLL). В Вашем случае глобальная ловушка, видимо, не нужна:
Hook:=SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, 0, GetCurrentThreadId);

P.S. Читайте справку по функции SetWindowsHookEx().


Наверх

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