
En Windows 10 (y probablemente también en todas las demás versiones de Windows), al hacer clic en una barra de desplazamiento encima o debajo de su controlador, se desplaza una página hacia arriba o hacia abajo. Pero en lugar de eso, me gustaría ir a la ubicación en la que hice clic.Ya existe una funcionalidad para eso., que se activa usando Shift+ Clicko (en algunas aplicaciones) haciendo clic derecho y eligiendo "desplazarse aquí" en el menú contextual. Pero quiero que esa funcionalidad sea el comportamiento predeterminado.
¿Cómo puedo hacer que "desplazarse aquí" sea la acción predeterminada para los clics izquierdos en las barras de desplazamiento?
Lo ideal sería que hubiera una configuración de registro o algo así. Pero también estoy abierto a trucos como un script AutoHotKey que detecta clics izquierdos en las barras de desplazamiento e inyecta un Shiftpara estos clics.
Respuesta1
Pruebe este script 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
Respuesta2
Esta es una adaptación deesta respuestacon algunas correcciones de errores y un filtro para que el script solo se active en aplicaciones predefinidas.
Todavía hay margen de mejora. Por ejemplo, ya no puedes arrastrar el controlador de desplazamiento.
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
}
Para AutoHotKey 2 es posible que desees cambiar a CoordMode, Mouse, Client
y WinGetClientPos
.
Para la depuración, encontré SoundPlay *-1
útil cada vez que se inserta Shift+Clic.