IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Хук мыши (https://www.imho.ws/showthread.php?t=76864)

dex0r 03.01.2005 01:06

Хук мыши
 
Не могу понять, почему координаты мыши не возвращаются, если курсор находится на заголовке окна (любого, и не важно, активного или нет)
Вот код обработки ловушки:
Код:

function hook(c0de : integer; wParam:WPARAM; lParam:lparam): Lresult; stdcall;
var
w : THandle;
hw: hwnd;
s1,s2:string;
inf:^tagMOUSEHOOKSTRUCT;
begin
  if c0de >= 0 then
  begin
    case wParam of
      WM_MOUSEMOVE :
      begin
        inf :=pointer(lParam);
        str(inf^.pt.X,s1);
        str(inf^.pt.y,s2);
        hw:=GetForegroundWindow;
        SetWindowText(hw,pchar(s1+':'+s2));
      end;
    end;
  end
  else
  begin
    result := CallNextHookEx(H, c0de, wParam, lParam);
    exit;
  end;

result := CallNextHookEx(H, c0de, wParam, lParam);
End;


/7y3uK 03.01.2005 04:13

Попробуй перед присваиванием inf :=pointer(lParam); выделить записи память New(inf)
После выполнения не забудь освободить Dispose(inf);

mr_eoi 03.01.2005 08:50

dex0r
IMHO координаты мыша лучше брать через GetCursorPos
А чтобы координаты определялись и в заголовке окна, дополнительно обрабатывать сообщение WM_NCMOUSEMOVE

dex0r 08.01.2005 18:26

mr_eoi, пасиб! я про WM_NCMOUSEMOVE забыл :) А GetCursorPos проц нагружает (если через таймер или ещё какнить) Мне просто нужен постоянный контроль за мышью :beer:


Часовой пояс GMT +4, время: 08:11.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.