![]() |
WPARAM, LPARAM in einem Hook auslesen ( gelöst )
Hossa alle, ich bins schon wieder.
Also ich habe in meinem Notebook ein Touchpad drin das sich von allein nicht deaktivieren läst und da dachte ich baue ich mir selbst so ne Fancy funktion. Ich also Kräftig gegoogelt und jede menge Mouse Hooc Tuts gefunden. Das Prob ist aber das die die Maus komplett lahm legen, ich will aber nur unter bestimmten Kombinationen die Maus blockieren. Und Zwar : Die maus soll immer beweglich sein. Das Mausklicken soll nur dann erlaubt sein wenn in den Letzten 3 Sec. die Maus bewegt wurde, bzw geklickt wurde. D.h. wenn ich also 3 secs die maus nicht bewege wird der 1. Mausklick danach abgefangen und schalten die Maus wieder frei, erfolgt ein 2. Klick innerhalb von 3 secs, wird dieser ganz normal weitergegeben... Wenn ich nach 3 secs die Maus wieder bewege dann soll der 1. Mouse ebenfalls wieder weitergegeben werden, da ja die maus benutzt wurde. Was das ganze soll : ein Notebook mit Touchpad erzeugt den Frust, das wenn man Tippt man mim Handballen ab und zu auf die Touchpadfläche kommt. dann wird weil das als Klick erkannt wird der Cursor da hin bewegt, wo die maus gerade steht. Was recht ergärlich ist, weil man dann an der Falschen stelle weiterschreibt ... Den Kompletten Hook habe ich schon, das ist ja auch kein Problem
Delphi-Quellcode:
Wenn ich das Result := -1 wieder zu dem CallNextHook mache, dann funzt die maus wieder, klar.Function MouseHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; Begin result := 1; // CallNextHookEx(Mouse_HookHandle, nCode, wParam, lParam); // Was das hier macht weis ich allerdings nicht, wird aber bestimmt wichtig sein ;) If nCode >= 0 Then Begin mhs := Pointer(lParam); PostMessage(AppWnd, WM_SENDPACK, 0, 0); End; End; Die Frage ist nun wie bekomme ich aus den wparam und Lparam dingern raus das ich gerade geklickt habe, bzw das die maus sich bewegt hat ? Wenn ich diese Informationen habe ist der Rest ja ein kinderspiel .. Könnt ihr mir also sagen wie ich MouseMove und SS_left aus wparam und lparam rauskriege ? |
Re: WPARAM, LPARAM in einem Hook auslesen
Noch mehr Rumsuchen brachte mich zu
Delphi-Quellcode:
und das scheint zu funktionieren ;).
Function MouseHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
Var mhs: PMSLLHookStruct; b: Boolean; a: Cardinal; Begin If wParam = WM_LBUTTONDOWN Then Begin a := gettickcount; If (a - LastAction) > Delaytime Then Begin // Diesen einen Click fangen wir ab End Else Begin result := CallNextHookEx(Mouse_HookHandle, nCode, wParam, lParam); End; End Else result := CallNextHookEx(Mouse_HookHandle, nCode, wParam, lParam); LastAction := gettickcount; If nCode >= 0 Then Begin mhs := Pointer(lParam); PostMessage(AppWnd, WM_SENDPACK, 0, 0); End; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz