
In Windows 10 (und wahrscheinlich auch in allen anderen Windows-Versionen) scrollt man durch Klicken auf eine Bildlaufleiste über oder unter ihrem Griff eine Seite nach oben oder unten. Ich möchte aber stattdessen zur angeklickten Stelle springen.Dafür gibt es bereits eine FunktionalitätShift, das entweder durch Drücken von + oder (in einigen Anwendungen) durch Rechtsklick und Auswahl von „Hierher scrollen“ aus dem Kontextmenü ausgelöst wird Click. Aber ich möchte, dass diese Funktion das Standardverhalten ist.
Wie kann ich „Hierher scrollen“ zur Standardaktion für Linksklicks in Bildlaufleisten machen?
Im Idealfall gibt es eine Registrierungseinstellung oder etwas Ähnliches. Aber ich bin auch offen für Hacks wie ein AutoHotKey-Skript, das Linksklicks auf Bildlaufleisten erkennt und Shiftfür diese Klicks ein Einfügen von … vornimmt.
Antwort1
Versuchen Sie dieses AutoHotkey-Skript:
~LButton Up::
; Get the current position of the mouse cursor:
MouseGetPos, MouseX, MouseY, A ; A means the active window
; Get the position and size of the active window:
WinGetPos, WinX, WinY, WinWidth, WinHeight, A
If (MouseX > (WinWidth - 20) and MouseX < WinWidth and MouseY > 200) ; right edge
SendInput, +{Click} ; + is the symbol for Shift
return
https://www.autohotkey.com/docs/commands/MouseGetPos.htm https://www.autohotkey.com/docs/commands/WinGetPos.htm https://www.autohotkey.com/docs/Hotkeys.htm#Symbols
Antwort2
Dies ist eine Adaption vondiese Antwortmit einigen Bugfixes und einem Filter, sodass das Skript nur in vordefinierten Anwendungen aktiviert wird.
Es besteht noch Verbesserungsbedarf. So lässt sich beispielsweise der Scroll-Griff nicht mehr ziehen.
AutoHotkeyScript
#NoEnv
#Warn All
#If MouseIsOverScrollbar("firefox|chrome|notepad|hh")
LButton::
; "+" is the modifier for shift
SendInput, +{Click}
return
#If
MouseIsOverScrollbar(Exe_Regex) {
if (A_Cursor != "Arrow")
return False
MouseGetPos, _X, _Y, WindowUnderMouse
WinGet, Exe, ProcessName, ahk_id %WindowUnderMouse%
if (not Exe ~= "^(" . Exe_Regex . ")\.exe")
return False
WinActivate, ahk_id %WindowUnderMouse%
MouseGetPos, MouseX, MouseY
WinGetPos, _X, _Y, WinWidth, _H, ahk_id %WindowUnderMouse%
ScrollbarWidth = 25
HeaderWidth = 40
return MouseX > WinWidth - ScrollbarWidth
and MouseY > HeaderWidth
}
Für AutoHotKey 2 möchten Sie möglicherweise zu CoordMode, Mouse, Client
und wechseln WinGetClientPos
.
Zum Debuggen fand ich SoundPlay *-1
es hilfreich, wenn Umschalt+Klick eingefügt wird.