Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwendung (https://www.delphipraxis.net/123847-%5Bvista%5D%5Bgeloest%5D-maus-ereignisse-ausserhalb-eigener-anwendung.html)

xaromz 10. Nov 2008 15:21

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Hallo,

im MSDN steht, dass diese Information in WParam zu finden ist.

Gruß
xaromz

The Riddler 16. Nov 2008 11:36

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Hi,

danke erstmal. Die Frage ist nun, wie ich das überprüfen kann. Ich werde aus dem MSDN irgendwie nicht schlau. :-(

Mr_G 16. Nov 2008 12:03

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Hm... so wie ich das sehe kommst du da so ran:
Delphi-Quellcode:
if HiWord(wParam) < 0 then
  //zurück gedreht
else
  //vor gedreht
Der Wert ist wohl ein Vielfaches von WHEEL_DELTA (=120)...

The Riddler 16. Nov 2008 14:21

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Hi, ich stehe wohl etwas auf dem Schlach. Habe es mal so versucht, aber es wird immer "vor" angezeigt. :-(

Delphi-Quellcode:
  case Message.wParam of
    WM_MBUTTONDOWN: DoWhatIWant(cbMiddleMouse);
    WM_RBUTTONDOWN: DoWhatIWant(cbRightMouse);
    WM_MOUSEWHEEL: if HiWord(Message.wParam) < 0 then ShowMessage('zurück')
                    else Showmessage('vor');
  end;

Mr_G 16. Nov 2008 14:55

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Zitat:

Zitat von The Riddler
Hi, ich stehe wohl etwas auf dem Schlach. Habe es mal so versucht, aber es wird immer "vor" angezeigt. :-(

Nicht verzagen: Word hat kein Vorzeichen. Du müsstest das dann als SmallInt casten:
Delphi-Quellcode:
  case Message.wParam of
    WM_MBUTTONDOWN: DoWhatIWant(cbMiddleMouse);
    WM_RBUTTONDOWN: DoWhatIWant(cbRightMouse);
    WM_MOUSEWHEEL: if SmallInt(Message.wParamHi) < 0 then ShowMessage('zurück')
                    else Showmessage('vor');
  end;
Das ganze ist wie gesagt ein Vielfaches von WHEEL_DELTA... wohl um in Zukunft höhere "Scroll-Auflösungen" zu ermöglichen.

Apollonius 16. Nov 2008 15:09

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
In wParam steht einfach nur WM_MOUSEWHEEL, schließlich läuft der Code nicht in einer Fensterprozedur, sondern in einer Hookprozedur. Nach dem Durchlesen der Dokumentation bin ich geneigt zu sagen, dass man nicht herausfinden kann, wie das Mausrad gedreht wurde. Im Zweifel würde ich auf einen WH_CALLWNDPROCRET-Hook umsatteln.

Mr_G 16. Nov 2008 15:16

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Zitat:

Zitat von Apollonius
In wParam steht einfach nur WM_MOUSEWHEEL, schließlich läuft der Code nicht in einer Fensterprozedur, sondern in einer Hookprozedur...

:oops: Man sollte wohl doch den ganzen Thread lesen... Sorry!

The Riddler 18. Nov 2008 13:50

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Hui, das wäre ja eher unschön wenn das nicht ginge. :?

Was mich gerade auch noch beschäftigt, dann wird man die Maustasten 4, 5 und 6 auch nicht abfangen / darauf reagieren können, oder? :-(

Mr_G 18. Nov 2008 21:15

Re: [Vista][gelöst] Maus Ereignisse ausserhalb eigener Anwen
 
Zitat:

Zitat von The Riddler
Hui, das wäre ja eher unschön wenn das nicht ginge. :?

Was mich gerade auch noch beschäftigt, dann wird man die Maustasten 4, 5 und 6 auch nicht abfangen / darauf reagieren können, oder? :-(

Gehen tut das schon... nur scheinbar nicht mit einem normalen Mousehook (WH_MOUSE). Du müsstest wie Apollonius sagt auf einen anderen Hook umsteigen. WH_MOUSE_LL liefert z.B. direkt das Gesuchte im MSLLHOOKSTRUCT mit (geht aber nur unter NT-Systemen). Am besten quälst du dich durch das Tutorial von Olli und suchst dir dann hier den Hook deiner Wahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.
Seite 2 von 2     12   

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