Autohotkey MouseMove不';好像不行
我做了一个(工作)自动点击器,我想添加一些修改。 我想让代码在调用AutoClick函数时获取鼠标的当前位置。现在,当它调用ClickClick函数时,它会得到鼠标的当前位置。之后,它将鼠标捕捉回原始位置(oX、oY)并单击。单击后,它跳到鼠标刚好位于(x,y)的位置。单击部分工作,但鼠标根本不移动。 我不知道该怎么做才能修复它Autohotkey MouseMove不';好像不行,autohotkey,mousemove,Autohotkey,Mousemove,我做了一个(工作)自动点击器,我想添加一些修改。 我想让代码在调用AutoClick函数时获取鼠标的当前位置。现在,当它调用ClickClick函数时,它会得到鼠标的当前位置。之后,它将鼠标捕捉回原始位置(oX、oY)并单击。单击后,它跳到鼠标刚好位于(x,y)的位置。单击部分工作,但鼠标根本不移动。 我不知道该怎么做才能修复它 ^h::AutoClick() ^j::ExitApp AutoClick(Interval=100){ MouseGetPos, xpos, ypos
^h::AutoClick()
^j::ExitApp
AutoClick(Interval=100){
MouseGetPos, xpos, ypos
oX = %xpos%
oY = %ypos%
static Toggler
Toggler := !Toggler
TPer := Toggler ? Interval : "off"
SetTimer, ClickClick, %TPer%
return
ClickClick:
BlockInput On
MouseGetPos, x, y
MouseMove, %oX%, %oY%, 0
Click
MouseMove, %x%, %y%, 0
BlockInput Off
return
}
首先,您需要注意一些重构——从函数中取出计时器的子例程。它不属于那里;另外,它不会与函数隔离,因为它是全局的 oX、oY变量实际上与函数隔离,因此仅在该函数中可用。除非你宣布它们是全球性的
oX:=oY:=""
^h::AutoClick()
^j::ExitApp
AutoClick(Interval=100){
global oX, oY
static Toggler
MouseGetPos, xpos, ypos
oX = %xpos%
oY = %ypos%
Toggler := !Toggler
TPer := Toggler ? Interval : "off"
SetTimer, ClickClick, %TPer%
return
}
ClickClick:
BlockInput On
MouseGetPos, x, y
MouseMove, %oX%, %oY%, 0
Click
MouseMove, %x%, %y%, 0
BlockInput Off
return
或者,您可以让函数返回一个值(在本例中为鼠标坐标),并将其传递回ClickClick