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:
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;
Wenn ich das Result := -1 wieder zu dem CallNextHook mache, dann funzt die maus wieder, klar.
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 ?