X-Scrollwheel in Windows

819
Chris Charabaruk

Gibt es eine Möglichkeit, Mausrad-Ereignisse an ein beliebiges Fenster unter dem Mauszeiger zu senden, auch wenn es nicht das aktive Fenster ist? Ich möchte x-Scrollwheel-Funktionen haben, ohne die X-Maus aktivieren zu müssen.

1

2 Antworten auf die Frage

2
i-g

Ich bin nicht sicher, ob dies in Windows nativ unterstützt wird, aber ein Programm namens KatMouse sollte genau dies tun:

Der Hauptzweck des KatMouse-Dienstprogramms besteht darin, die Funktionalität von Mäusen mit einem Scrollrad zu verbessern, sodass ein universelles Scrollen möglich ist: Wenn Sie das Mausrad drehen, wird das Fenster direkt unter dem Mauszeiger gescrollt (nicht das mit dem Tastaturfokus (standardmäßig) unter Windows-Betriebssystemen). Dies ist eine wesentliche Steigerung der Nutzbarkeit des Mausrades.

KatMouse

Ich verwende bereits KatMouse, aber es scheint nicht immer der Trick zu sein. Chris Charabaruk vor 15 Jahren 0
N / M, ich bin ein Idiot, der RTFD braucht. Es funktioniert jedoch nicht für einige Apps wie Document Explorer. Chris Charabaruk vor 15 Jahren 0
Autohotkey würde es trivial machen, zum Beispiel einen Mausklick auf den Abwärts-Button neben der Bildlaufleiste zu senden. Phoshi vor 15 Jahren 0
KatMouse verwendet die Radmaussemantik für Fenster und kann so konfiguriert werden, dass Mausklicks für Fenster ausgeführt werden, für die keine Radmausnachrichten (pro Anwendung und pro Fenster) unterstützt werden. Es ist ein Kinderspiel, dies auch so einzurichten. KatMouse gewinnt zu diesem Zweck. Chris Charabaruk vor 15 Jahren 0
2
Phoshi

Autohotkey!

CoordMode, Mouse, Screen SetWinDelay, -1 SetBatchLines,-1 SetKeyDelay, -1  ; acceleration _WHEELACC=0x280000 ; max speed _WHEELMAXN=0x1800000 ; automatically activate window _WHEELAUTOFOCUS=1  return   EasyWheel(d) ; if _WHEELAUTOFOCUS if set, check which window is under the mouse and gives it focus if it hasn't already ; then send scroll event to the control under the mouse ; original code from Shimanov: http://www.autohotkey.com/forum/viewtopic.php?t=6772#54821 { Global _WHEELACC, _WHEELMAXN, _WHEELAUTOFOCUS Static t, s   if ( A_TickCount > 500+t) { t := A_TickCount s :=0x780000 } else if (s < _WHEELMAXN) s += _WHEELACC  MouseGetPos x, y, hwnd h := DllCall("WindowFromPoint", "int", x, "int", y) if _WHEELAUTOFOCUS && (hwnd<>WinExist("A")) WinActivate, ahk_id %hwnd% SendMessage, 0x20A, d*s,(y<<16)|x,, ahk_id %h% }   WheelUp:: EasyWheel(1) WheelDown:: EasyWheel(-1)  

(Aus dem Thread, der im Skriptkommentar verlinkt ist)

AHK kann alles: 3