Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Maushook: Mausklick "nachliefern" (https://www.delphipraxis.net/15930-maushook-mausklick-nachliefern.html)

OrallY 6. Feb 2004 17:44


Maushook: Mausklick "nachliefern"
 
Mein Problem: Ich hab einen LowLevel-Mousehook installiert. Wenn die Maus bei gedrückter rechter Maustaste bewegt wird, soll der Mausklick nicht weitergeleitet werden. Wird allerdings die Maustaste gedrückt, ohne dass die Maus bewegt wird, soll alles ganz normal ablaufen, sprich Windows erfährt, dass die Maustaste gedrückt wurde.

Das Blockieren ist kein Problem (Dies erfolgt durch die Nichtaufrufung von CallNextHookEx.). Vielmehr, dass die Maustaste erst dann "gedrückt" wird, wenn die Maus weniger als, sagen wir mal, 10 Pixel bewegt wird. Das Problem ist jetzt die "Nachlieferung" von der WM_RMOUSEDOWN-Nachricht. Wenn ich versuche mit mouse_event den Mausklick zu simulieren, hat dies keine Wirkung.

Ich hoff mal, dass man ungefähr nachvollziehen kann, was ich meine.

Auszug aus der Hook-DLL (ist zugegebenermaßen ein wenig zusammengehackt ;) ):
Delphi-Quellcode:
{...}
    Inc(CallCounter);

    if (wParam = WM_RBUTTONDOWN) or (wParam = WM_RBUTTONUP) then
    begin
      if wParam = WM_RBUTTONUP then
        if CallCounter < 10 then
        begin
          GetCursorPos(CurPos);
          mouse_event(MOUSEEVENTF_RIGHTDOWN, CurPos.X, CurPos.Y, 0, 0);
          Result := CallNextHookEx(LowLevelMouseHookHandle, nCode, WParam, LParam);
        end;

      CallCounter := 0;
    end
    else
      Result := CallNextHookEx(LowLevelMouseHookHandle, nCode, WParam, LParam);
{...}

SirThornberry 6. Feb 2004 17:46

Re: Maushook: Mausklick "nachliefern"
 
sorgst du irgendwie auch dafür das deine message nicht durch deinen eigenen hook rausgefiltert wird??

OrallY 6. Feb 2004 18:05

Re: Maushook: Mausklick "nachliefern"
 
Ah, danke für den Gedankenanstoß. Ich Hirni hab das im Eifer des Gefechts vergessen ;). Es klappt jetzt, so wie ich es will.

win98 3. Jun 2006 20:08

Re: Maushook: Mausklick "nachliefern"
 
ma hoffn, das ich hier das richtige thema erwischt hab....

hab keine ahnung was n hook is... :gruebel:

was ich brauch, ist ein befehl, mit dem ich den NÄCHSTEN mausklick abfragen kann..... :dance:

zb:

if (als nächstes image2 angeklickt wird) then begin :dancer2:

könnta mir weitergelfen :?:

Angel4585 3. Jun 2006 21:09

Re: Maushook: Mausklick "nachliefern"
 
Zitat:

Zitat von win98
ma hoffn, das ich hier das richtige thema erwischt hab....

hab keine ahnung was n hook is... :gruebel:

was ich brauch, ist ein befehl, mit dem ich den NÄCHSTEN mausklick abfragen kann..... :dance:

zb:

if (als nächstes image2 angeklickt wird) then begin :dancer2:

könnta mir weitergelfen :?:

und wo ihr schon dabei seit.. ich könnt grad en Programm gebrauchen des mir die Lottozahlen von der nächsten ziehung vorraussagt :lol: .. sry.. aber was du in Zukunft tun wirst kann dein Programm ja schlecht wissen :zwinker:

win98 3. Jun 2006 21:11

Re: Maushook: Mausklick "nachliefern"
 
naja.... das prog soll ja auch wissen, OB ich in zukunft was mache (image1 anklicke)

Nils_13 3. Jun 2006 21:13

Re: Maushook: Mausklick "nachliefern"
 
Zitat:

Zitat von Angel4585
Zitat:

Zitat von win98
ma hoffn, das ich hier das richtige thema erwischt hab....

hab keine ahnung was n hook is... :gruebel:

was ich brauch, ist ein befehl, mit dem ich den NÄCHSTEN mausklick abfragen kann..... :dance:

zb:

if (als nächstes image2 angeklickt wird) then begin :dancer2:

könnta mir weitergelfen :?:

und wo ihr schon dabei seit.. ich könnt grad en Programm gebrauchen des mir die Lottozahlen von der nächsten ziehung vorraussagt :lol: .. sry.. aber was du in Zukunft tun wirst kann dein Programm ja schlecht wissen :zwinker:

Zufallszahlen :mrgreen: Aber ist wirklich wahr, dann könnte man ja gleich dem Hook sagen, dass er machen will, worauf er gerade mal Lust hat. :mrgreen:
Zitat:

Zitat von win98
naja.... das prog soll ja auch wissen, OB ich in zukunft was mache (image1 anklicke)

Das wird es nie geben, da es den Naturgesetzen (stimmt das?) widerspricht.

jfheins 3. Jun 2006 21:13

Re: Maushook: Mausklick "nachliefern"
 
Du kannst nur auf Ereignisse reagieren, nicht sie vorhersagen ;)

Du könntest natürlich etwas machen,wenn die Maus über deinem Image ist - siehe OnMouseMove ;)

Neutral General 3. Jun 2006 21:16

Re: Maushook: Mausklick "nachliefern"
 
Abgesehn von der unlogik der Frage würde ich mal sagen was dir wahrscheinlich jemand anderes auch sagen würde wenn ich es jetzt nicht tue... Mach lieber nen eigenen Thread auf statt den hier zu missbrauchen ;)
Allein schon weil die Leute die sich den Thread hier angucken nicht darauf gefasst sind dein Problem zu beheben sondern das des Thread-Erstellers wodurch du auch wohl weniger antworten bekommen wirst hier...
Und du solltest deine Frage vielleicht besser verständlich stellen :mrgreen: Ich hab das Gefühl das du was machen willst, was ziemlich einfach ist und du drückst es nur komisch aus.

Gruß
Neutral General

win98 3. Jun 2006 21:19

Re: Maushook: Mausklick "nachliefern"
 
is so...

ich will/soll ein memoryspiel mit delphie programieren.....

aba das klappt net mit den paar befehlen die ich hab.... :roll:

n eigenen thread habsch schon aufgemacht.... nur da antwortet keiner .... naja.... dann mussch wohl abwarten.. trotzdem danke..


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 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