Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с хуком на мышь 
:(
    Опции темы
Delist
Дата 1.7.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.10.2004

Репутация: нет
Всего: нет



Есть хук на мышь, который отлавливает нажатие правой кнопки и что-то делает с активным окном(думаю это не важно). Всё работает нормально, пока указатель не попадает на границу экрана(там он принимае форму растягивающей стрелки). В этом случае ниакой реакции на нажатие правой кнопки у окна нет smile.

Может кто знает, как с этим можно бороться? Заранее спасибо.
PM MAIL WWW   Вверх
Quadr0
Дата 1.7.2005, 11:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 22:31
  Вверх
Delist
Дата 1.7.2005, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.10.2004

Репутация: нет
Всего: нет



Спасибо за идею, но это не совсем подошло. Если параметр code сравинвать с HCBT_MOVESIZE, то он реагирует только на левую мышь, при условии, что размер окна всё-таки изменили. А если сравнивать с HCBT_CLICKSKIPPED, то событие генерируется, сразу как только указатель наведён на границу окна.
PM MAIL WWW   Вверх
Alex
Дата 3.7.2005, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 6
Всего: 162



Delist, а хук стоит для приложения или для всей системы? Не мешало бы код посмотреть.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Delist
Дата 3.7.2005, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 19.10.2004

Репутация: нет
Всего: нет



Alex Ловушка установлена для всей системы.

Код обработки сообщения предлельно прост:
Код
procedure HookProc(code: Integer; wParam, lParam: Longint); stdcall;
var
  h: hwnd;
  //Mosestruct: PMouseHookStruct;
begin
CallNextHookEx(HookHandle, code, wParam, lParam);
if code=HC_ACTION then
  if wParam = WM_RBUTTONDOWN then begin
    h:=GetForegroundWindow;
    SetWindowText(h,'RightButtonDown(WH_MOUSE)');
    end;
end;


Код установки ловушки:

Код
function SetHook(State: Boolean): boolean; export; stdcall;
begin
Result:=false;
if State and (HookHandle=0) then begin
  HookHandle:=SetWindowsHookEx(WH_MOUSE, @HookProc, HInstance, 0);
  Result:=(HookHandle<>0);
  end
else if (State=false) and (HookHandle<>0) then begin
  UnhookWindowsHookEx(HookHandle);
  HookHandle:=0;
  Result:=true;
  end;
end;

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.