Hook na mysz

0

Mam napisane funkcje dla założenia globalnego hooka na mysz aby przy kliknięciu odświeżane były dane z bazy.
Problem polega na tym, iż po założeniu hooka na mysz kod odświeżania wykonywany jest w funkcji HookProcMouse przy każdej zmianie pozycji myszki a nie jak potrzebuję tylko przy kliknięciu lewym przyciskiem.

Funkcje wyglądają tak:

// zalożenie hooka
HookIDMouse:=SetWindowsHookEx(WH_MOUSE_LL, @HookProcMouse, hInstance, 0);


//... i funkcja wykonawcza -drugi parametr SetWindowsHookEx
function HookProcMouse(HookCode:Integer; MouseCode:wParam;  KStrokeInfo:lParam):  LResult; stdcall;
var
 Struct: PKbdDllHookStruct; // dla pozycji myszy
begin
   Struct:=Ptr(KStrokeInfo);
   MouseCode:=WM_LBUTTONDOWN; // -->> ???
   HookCode:=WM_LBUTTONDOWN; // -->> ???
  
   if(HookCode=WM_LBUTTONDOWN)then // -->???
   begin
    { ...tutaj wykonanie odświeżenia danych w bazie }
    Result:=CallNextHookEx(HookIDMouse, HookCode, MouseCode,  KStrokeInfo );
   end;

end;

Proszę o pomoc w rozwiązaniu tego problemu.

1

Poczytaj na MSDNie jak wygląda funkcja obsługi tego hoka i opis parametrów. To, który przycisk kliknięto określa parametr WParam. Poza tym u siebie najpierw go przypisujesz, a póżniej porównujesz z tym co przypisałeś. A i funkcja zawsze powina zwracać rezultat. Także popraw to co masz i w przyszłości musisz myśleć co robisz, a nie wklejać bezmyślnie jakiś dziwny kod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1