Optimieren Sie die Bildlaufleiste von Windows 10, um standardmäßig zur angeklickten Stelle zu springen

Optimieren Sie die Bildlaufleiste von Windows 10, um standardmäßig zur angeklickten Stelle zu springen

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, Clientund wechseln WinGetClientPos.

Zum Debuggen fand ich SoundPlay *-1es hilfreich, wenn Umschalt+Klick eingefügt wird.

verwandte Informationen