
В 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+клик.