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

Вниз

особенности HOOK-ов в MDI приложениях   Найти похожие ветки 

 
Dennisius   (2004-05-17 09:37) [0]

Здорово, здесь много было написано, сказано, про глобальные HOOK-и. Я сталкнулся вот с такой ситуацией. в MDI приложении
точнее в его DLL создается глобальный HOOK :


function Key_Hook(Code: integer; wParam: word; lParam: Longint): Longint; stdcall;
begin
 if Code >= 0 then
 begin
  if (lParam and $40000000 = 0) and (wParam=hide_key) then
   SendMessage(SC_H, wm_readkb, wParam, lParam);
  Result:=0;
 end
              else
 Result := CallNextHookEx(HookHandle,Code, wParam, lParam);
end;

procedure LocalExitProc; far;
begin
 if HookHandle<>0 then
 begin
   UnhookWindowsHookEx(HookHandle);
   ExitProc := SaveExitProc;
 end;
end;

procedure Init_Hook;
begin
HookHandle := SetWindowsHookEx(wh_Keyboard, @Key_Hook, HInstance, 0);
if (HookHandle <> 0) then
begin
 SaveExitProc := ExitProc;
 ExitProc := @LocalExitProc;
end;
end;


Но он перехватывает только wh_Keyboard только когда приложение
находится в Фокусе. Если фокус переходит на другое предложение
то Hook не пашет. Можете объяснить в чем дело. Заранее Спасибо


 
Игорь Шевченко ©   (2004-05-17 10:22) [1]

Статью по хукам читал ?


 
Dennisius   (2004-05-17 10:49) [2]

-> Статью по хукам читал
На этом сайте нет, щас почитаем, только не говорите что
HOOK в MDI приложениях не пашет .....


 
Dennisius   (2004-05-17 10:53) [3]

Просмотрел статью по реализации HOOK-сов что то там нечего нету про MDI приложения


 
Игорь Шевченко ©   (2004-05-17 11:20) [4]

А какая разница, MDI или не MDI ?
Вот, например, Spy++ является MDI приложением, а хуки там прекрасно работают.


 
Digitman ©   (2004-05-17 11:26) [5]


> что то там нечего нету про MDI приложения


и не будет

потому что MDI-приложение - такое же равноправное GUI-приложение, как и все прочие GUI-приложения

когда идет речь о глоб.хуках, то речь идет именно о GUI-приложениях ... а уж MDI или не MDI - совершенно индифферентно


 
Dennisius   (2004-05-17 16:04) [6]


> потому что MDI-приложение - такое же равноправное GUI-приложение,
> как и все прочие GUI-приложения
>
> когда идет речь о глоб.хуках, то речь идет именно о GUI-приложениях
> ... а уж MDI или не MDI - совершенно индифферентно


> А какая разница, MDI или не MDI ?
> Вот, например, Spy++ является MDI приложением, а хуки там
> прекрасно работают


Я писал пару подобных програм и выше приведенный код взят из одной из них, где он прекрасно работает как глобальный HOOK,
в этом и весь прикол, программа обладала GUI интерфейсом.
Теперь я копирую этот код в MDI-приложение и он работает только как HOOK процесса этого приложения, поэтому то я и решил что вся проблема в MDI-технологии.
Если в нем есть ошибка прошу помочь её найти.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-1086902873
CyberSpy
2004-06-11 01:27
2004.06.27
Listview


1-1086774425
guest
2004-06-09 13:47
2004.06.27
TAnimate


14-1086869679
denis24
2004-06-10 16:14
2004.06.27
иконки для приложений msoffice


11-1075723164
Solik
2004-02-02 14:59
2004.06.27
Максимизация окна


1-1087275583
an-na2002
2004-06-15 08:59
2004.06.27
внешний вид формы