いろんな AHK スクリプトを切り貼りしてたら、 こんな感じに短くてもそれなりに動くことがわかって感動。
XButton1::
MouseGetPos, sx, sy, hwnd, ctrl, 1
while GetKeyState("XButton1", "P")
{
MouseGetPos, x, y
delta := sy - y
if(delta != 0)
{
wParam := 0x10000 * 120 * (delta / Abs(delta))
lParam := sx + sy * 0x10000
loop % (Ceil(Abs(delta) / 10))
{
PostMessage, 0x20A, %wParam%, %lParam%, %ctrl%, ahk_id %hwnd%
}
}
MouseMove, sx, sy, 0
}
return