[AHK]仅识别八个方向的简版鼠标手势实现

来源:互联网 发布:淘宝网比价插件 编辑:程序博客网 时间:2024/06/11 04:51
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, YWhile GetKeyState("RButton", "P"){Sleep, 10MouseGetPos, 1X, 1YDistance := 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 ? "-" : "") DirectionGesture:= Directions}If (Direction<>LastDirection || Distance>=5)X := 1X , Y := 1YLastDirection := Direction}StringLeft, O, Gesture, 1IF OGosub %O%elseSendInput  {rbutton} ReturnG(X_, Y_){ Argument := ACos(X_/Sqrt((X_**2)+(Y_**2)))*(45/ATan(1))Argument := Y_<0 ? Argument : 360-ArgumentReturn, ["R" , "↗" , "U", "↖" , "L" , "↙" , "D" , "↘" , "R"][Ceil((Argument-22.5)/45)+1]}↖:MsgBox ↖左上return↗:MsgBox ↗右上return↙:MsgBox ↙左下return↘:MsgBox  ↘右下returnR:MsgBox 右returnU:MsgBox 上returnL:MsgBox 左returnD:MsgBox  下return#IfWinNotActive

0 0