我最近买了一个没有滚动选项的轨迹球。我不知道这是否可行,但是有没有办法检测在按下某个键(比如说 alt 键)时轨迹球是否在移动,然后停止鼠标移动并根据轨迹球的方向滚动?
我找到了一种方法来检测光标位置的变化,但不能检测鼠标位置的变化。我也没有找到一种方法来阻止光标移动。
你能帮我吗?
答案1
我在 AutoHotkey 论坛上找到了这个,并对其进行了修改,使其包含水平滚动。按住 alt 并移动鼠标将沿鼠标移动的方向执行滚动。
~*Alt::
Loop
{
If !GetKeyState("Alt","P")
break
MouseGetPos, ax,ay
Sleep, 50
MouseGetPos,bx,by
Send % (ay<by ? "{WheelDown " : "{WheelUp ") . round(Abs(ay-by)/(GetKeyState("Shift","P") ? 10 : 1)) . "}"
Send % (ax<bx ? "{WheelRight " : "{WheelLeft ") . round(Abs(ax-bx)/(GetKeyState("Shift","P") ? 10 : 1)) . "}"
}
Return