Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2015, 16:12
EEjester EEjester вне форума
Прохожий
 
Регистрация: 03.07.2014
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Нужно додумать код 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);

Все работает, нужное окно он перехватывает, но когда запущен хук то все другие окна других программ становятся активными со второго клика мышки. Как победить это?

Может я вообще не так написал его? Помогите!!! Если нужно заплачу!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter