Попробуй такой вариант:
CoordMode,Mouse,Screen
+LButton::
scroll:=120<<16
gosub,scroll
return
^LButton::
scroll:=-120<<16
gosub,scroll
return
scroll:
MouseGetPos,X,Y,mwin,mctrl
WinGet,ActiveWin,id,A
WheelWinID :=DllCall("WindowFromPoint","int64",(X&0x00000000FFFFFFFF)|(Y<<32),"ptr")
WheelWinID2:=DllCall("WindowFromPoint","int64",(X&0x00000000FFFFFFFF)|((Y-20)<<32),"ptr")
ControlGetFocus,focctrl,ahk_id %mwin%
ControlGet,hfocctrl,Hwnd,,% focctrl,ahk_id %mwin%
if (WheelWinID!=hfocctrl)
ControlFocus,,ahk_id %WheelWinID%
PoSTMessage,0x20A,Scroll,(X&0x0000FFFF)|(Y<<16),,ahk_id %WheelWinID%
If (ErrorLevel or (WheelWinID!=WheelWinID2))
PoSTMessage,0x20A,Scroll,(X&0x0000FFFF)|(Y<<16),,ahk_id %WheelWinID2%
return