2017-07-15 157 views
-6

我做了一個(工作)汽車點擊器,我想添加一點點修改。 我希望代碼在您調用AutoClick函數時抓住鼠標的當前位置。現在,當它調用ClickClick函數時,它將獲取鼠標當前的當前位置。之後,它將鼠標按回原來的位置(oX,oY)並點擊。點擊後,它跳轉到鼠標剛剛位於(x,y)的位置。點擊部分工作,但鼠標根本不移動。 我不知道該如何解決它。MouseMove似乎沒有工作

^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 

    } 

回答

0

首先,你有一些重構,你需要照顧 - 讓你的定時器的子程序出功能。它不屬於那裏;再加上它不會與功能隔離,因爲它是全球性的。

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 

或者,你可以有你的函數返回一個值(在這種情況下,鼠標COORDS),並通過那些回你ClickClick。