AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WPARAM, LPARAM in einem Hook auslesen ( gelöst )
Thema durchsuchen
Ansicht
Themen-Optionen

WPARAM, LPARAM in einem Hook auslesen ( gelöst )

Ein Thema von Corpsman · begonnen am 8. Okt 2008 · letzter Beitrag vom 8. Okt 2008
Antwort Antwort
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#1

WPARAM, LPARAM in einem Hook auslesen ( gelöst )

  Alt 8. Okt 2008, 16:41
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 ?
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: WPARAM, LPARAM in einem Hook auslesen

  Alt 8. Okt 2008, 17:10
Noch mehr Rumsuchen brachte mich zu

Delphi-Quellcode:
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;
und das scheint zu funktionieren .
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz