无法在循环中执行任何其他操作

时间:2020-03-01 11:20:05

标签: autohotkey

功能:我希望脚本循环F5为我刷新页面,当我看到不错的东西时,请按其他键之一来狙击某项。

问题:在循环F5时,我无法执行任何其他脚本。

MouseGetPos, OrigX, OrigY
mouseClick, left
sleep 20
random, randomlocx , 0,5
random, randomlocy , 0,5
MouseMove, 1162+randomlocx, 477+randomlocy, 0
mouseClick, left
sleep 10
send {y}
random, randomlocx2 , 0,10
random, randomlocy2 , 0,10
MouseMove, OrigX+randomlocx2, OrigY+randomlocy2, 0
return

2::
MouseGetPos, OrigX, OrigY
random, randomlocx , 0,5
random, randomlocy , 0,5
MouseMove, 964+randomlocx, 575+randomlocy, 0
sleep 20
mouseClick, left
MouseMove, OrigX, OrigY, 0

~$F5::
loop , 300 
{
Send {F5}
}   
return
F12::Reload   ; Reload script```

1 个答案:

答案 0 :(得分:1)

AutoHotkey不能提供真正的多线程,所以这就是为什么您的脚本在运行循环时不响应的原因。 为了克服这个问题,您将要使用Timer。循环实际上并不意味着这些东西。

使用一个键打开/关闭计时器的示例:

F5::
    toggle := !toggle ;a convenient way to toggle a variable in AHK, see below of explanation
    if(toggle) ;if true
        SetTimer, TimerCallback, 100 ;callback every ~100ms
    else
        SetTimer, TimerCallback, Off ;turn off timer
return

TimerCallback() ;the callback function
{
    Tooltip, % A_TickCount
}

可以从我的here的先前答案中找到toggle := !toggle可变状态切换的说明。
还包括一个可爱的1liner计时器切换热键的示例。

相关问题