Написал с горем по полам CBTHook(dll) на HCBT_ACTIVATE. Суть этого хука в том что бы перехватить появление определенного окна, и получить его хендл, потом произвести с ним какие то действия.
Код хука:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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 );
|
Все работает, нужное окно он перехватывает, но когда запущен хук то все другие окна других программ становятся активными со второго клика мышки. Как победить это?
Может я вообще не так написал его? Помогите!!! Если нужно заплачу!