Установка ловушки мыши

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Установка ловушки мыши

Сообщение serg_iv » 18.06.2006 19:15:29

Пытаюсь перехватить события мыши, такие как нажатие на левую клавишу и на среднюю. В результате воспроизводится системный звук.
Так вот, если я эту библиотеку компилирую в Лазарусе, то потом присоединяя ее в другой программе (форма + две кнопки для установки и снятия ловушки), получаю, что когда мышь находится в пределах формы нажатия кнопок перехватываются, а если мышь выходит за границы формы, события не перехватываются.

Откомпилировал эту библиотеку в Делфи, присоединил, перехватывается на ура.

Код: Выделить всё
library project1;

{$mode delphi}
{$H+}
uses
  windows,messages,sysutils;
var
  H : hHook = 0;


function hook(code:integer; wParam:integer; lParam : integer): integer stdcall;
begin
  if code >= 0 then // ловушка может обработать событие
     begin
       if (wParam=WM_LBUTTONUP) then// Если нажата левая кнопка мыши,
                begin
                beep;
                end;

       if (wParam=WM_MBUTTONUP)then// Если нажата средняя кнопка мыши,
                begin
                beep;
                end
     end;
     
result := CallNextHookEx(H, code, wParam, lParam);
end;



// Процедура установки ловушки
procedure sethook;
begin
H:= SetWindowsHookEx(WH_MOUSE, @hook, hInstance, 0);
end;

// Процедура удаления ловушки
procedure removehook;
begin
  UnhookWindowsHookEx(H);
end;

// Экспорт процедур установки и удаления hook'a
exports
sethook,
removehook;
end.
serg_iv
постоялец
 
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение SovNarKom » 18.06.2006 23:15:27

Неуверен по поводу, того почему перехварывается если на окне нажать, но что-то там связано возможно с разделяемыми библиотеками, которые FPC не делает...
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

Рейтинг@Mail.ru