Текущий архив: 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.46 MB
Время: 0.038 c