Настройте полосу прокрутки Windows 10 для перехода к месту щелчка по умолчанию

Настройте полосу прокрутки Windows 10 для перехода к месту щелчка по умолчанию

В Windows 10 (и, вероятно, во всех других версиях Windows тоже) нажатие на полосу прокрутки выше или ниже ее ручки прокручивает страницу вверх или вниз на одну страницу. Но вместо этого я хотел бы перейти к нажатому месту.Для этого уже есть функционал, который активируется либо с помощью Shift+ Click, либо (в некоторых приложениях) щелчком правой кнопкой мыши и выбором "прокрутить сюда" из контекстного меню. Но я хочу, чтобы эта функциональность была поведением по умолчанию.

Как сделать «прокрутить сюда» действием по умолчанию для щелчков левой кнопкой мыши на полосах прокрутки?

В идеале, это была бы настройка реестра или что-то в этом роде. Но я также открыт для хаков, таких как скрипт AutoHotKey, который обнаруживает левые щелчки на полосах прокрутки и вставляет Shiftдля этих щелчков.

решение1

Попробуйте этот скрипт AutoHotkey:

~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

решение2

Это адаптацияэтот ответс некоторыми исправлениями и фильтром, который позволяет активировать скрипт только в предопределенных приложениях.

Еще есть куда стремиться. Например, больше нельзя перетаскивать ручку прокрутки.

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
}

Для AutoHotKey 2 вам, возможно, захочется переключиться на CoordMode, Mouse, Clientи WinGetClientPos.

Для отладки я обнаружил, SoundPlay *-1что полезно использовать сочетание клавиш Shift+клик.

Связанный контент