CoordMode, Mouse, Screen
;建立 浏览器 程序组,方便排除这些程序
GroupAdd, Browser, ahk_class IEFrame ; 添加 Internet Explorer 窗口到这个组.
GroupAdd, Browser, ahk_class MozillaWindowClass ; 添加 Mozilla窗口到这个组.
GroupAdd, Browser, ahk_class Chrome_WidgetWin_1 ; 添加Chrom窗口到这个组.
#IfWinNotActive ahk_group Browser ;不在浏览器中生效本脚本
rbutton::
FinalDirection :=Gesture:=Directions:=LastDirection:=""
MouseGetPos, X, Y
While GetKeyState("RButton", "P")
{
Sleep, 10
MouseGetPos, 1X, 1Y
Distance := Sqrt((1X-X)**2+(1Y-Y)**2)
RegExMatch(Gesture, "\w+$", LastAddedDirection)
If (Distance>=20)
Direction := G(1X-X, 1Y-Y)
If (Distance>=20)
FinalDirection := G(1X-X, 1Y-Y)
If (Direction=FinalDirection && Direction<>LastAddedDirection && Distance>=5)
{
Directions .= (Gesture ? "-" : "") Direction
Gesture := Directions
}
If (Direction<>LastDirection || Distance>=5)
X := 1X , Y := 1Y
LastDirection := Direction
}
StringLeft, O, Gesture, 1
IF O
Gosub %O%
else
SendInput {rbutton}
Return
G(X_, Y_)
{
Argument := ACos(X_/Sqrt((X_**2)+(Y_**2)))*(45/ATan(1))
Argument := Y_<0 ? Argument : 360-Argument
Return, ["R" , "↗" , "U", "↖" , "L" , "↙" , "D" , "↘" , "R"][Ceil((Argument-22.5)/45)+1]
}
↖:
MsgBox ↖左上
return
↗:
MsgBox ↗右上
return
↙:
MsgBox ↙左下
return
↘:
MsgBox ↘右下
return
R:
MsgBox 右
return
U:
MsgBox 上
return
L:
MsgBox 左
return
D:
MsgBox 下
return
#IfWinNotActive
[AHK]仅识别八个方向的简版鼠标手势实现
最新推荐文章于 2023-02-17 21:19:30 发布