You can adjust scrolling speed by modifying the "WheelTurns" variable.
If you hold Win+Alt, you can set any custom point for scroll by clicking on the screen, and then scrolling with both Win and Alt key pressed will also scroll at stored position
Code: Select all
; Parallel scrolling
; Autohotkey script by @emvaized
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance, Force
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
#KeyHistory 0
ListLines Off
SetMouseDelay, -1
; Preference for scrolling speed. Defines how much scroll events to send on every detected scroll.
WheelTurns := 5
#WheelUp:: ScrollPoint("WheelUp", WheelTurns)
Return
#WheelDown:: ScrollPoint("WheelDown", WheelTurns)
Return
!#WheelUp:: ScrollPoint("WheelUp", WheelTurns, SavedX, SavedY )
Return
!#WheelDown:: ScrollPoint( "WheelDown", WheelTurns, SavedX, SavedY )
Return
; Save cursor position on Win+Alt+click
#!LButton::
{
CoordMode, Mouse, Screen
MouseGetPos, SavedX, SavedY
ToolTip, Saved point for scroll: %SavedX% x %SavedY%`
Sleep 1000
ToolTip
}
ScrollPoint(WhichButton, WheelTurns, PasX = -1, PasY = -1) {
; Get desktop size and mouse position
CoordMode, Mouse, Screen
WinGetPos, , , Xmax, , Program Manager
MouseGetPos, MouseX, MouseY
Loop, %WheelTurns% {
; Scroll at current position
MouseClick, %WhichButton% , , , 1, 0, ,
if (PasX > -1) {
; Move to previously saved cursor position
MouseClick, %WhichButton% , PasX, PasY, 1, 0, ,
} else {
; Move to horizontally mirrored position and scroll
MouseClick, %WhichButton% , (Xmax - MouseX), MouseY, 1, 0, ,
}
; Move cursor back
MouseMove, MouseX, MouseY ,0 ,
}
}
Demonstration of parallel scrolling two windows simultaneously when Win key is pressed (cursor is over left window):