|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нужно додумать код CBT хука
Написал с горем по полам CBTHook(dll) на HCBT_ACTIVATE. Суть этого хука в том что бы перехватить появление определенного окна, и получить его хендл, потом произвести с ним какие то действия.
Код хука: Код:
function CBTHook(Code : Integer; wParam, lParam: DWORD): Longint; stdcall; var h : HWND; begin if Code >= 0 then begin case Code of HCBT_ACTIVATE: begin h := FindWindow(nil, 'ScanMaster'); if h<>0 then begin SetWindowLong(h, GWL_EXSTYLE, WS_EX_TOOLWINDOW); end; end; end; Result := 0; end else Result := CallNextHookEx(HookCBTHandle, Code, wParam, lParam); end; включить: HookCBTHandle := SetWindowsHookEx(WH_CBT, @CBTHook, hInstance, 0); Все работает, нужное окно он перехватывает, но когда запущен хук то все другие окна других программ становятся активными со второго клика мышки. Как победить это? Может я вообще не так написал его? Помогите!!! Если нужно заплачу! |