(AHK) 似乎无法使像素颜色声明起作用

(AHK) Can't seem to get a pixel color statement working

我昨天才开始。我试图制作一个脚本,该脚本在检测到像素颜色后执行一系列操作。当 i 运行 它要么忽略 if 语句,要么退出。而且,我希望它寻找像素颜色,直到找到为止。

PixelGetColor, color, 835, 620, Fast
if color = 0xCA3847
{
Random, rand, 15000, 25000
Sleep, %rand%
Click, Down, 1091 493
Click, Up, 1135 493
sleep, 300
^+c::
    {
     ClipSaved= %clipboard%
     send ^c
     ClipNew= %ClipSaved% %clipboard%
     clipboard = %ClipNew%
    }
sleep, 300
Click, 767, 558
sleep, 300
Clip0 = %ClipBoardAll%
    ClipBoard = %ClipBoard%
    Send ^v
    Sleep 1000
Click, 767, 558
sleep, 300
Clip0 = %ClipBoardAll%
    ClipBoard = %Clip0%
    VarSetCapacity(Clip0, 0)
sleep, 300
Click, 851, 619
}

有几个解决方案。您可以使用循环(但脚本在该循环中无法响应任何内容)或使用 setTimer 重复检查像素颜色,然后执行您想要的操作。我不完全确定您正在尝试明智地完成工作流程,但根据我所见,我认为这可能会满足您的目的。请注意在每个操作序列的末尾使用“return”。

#Persistent
setTimer, CheckforCA3847, 50

Return ; end auto-execute section at top of script.

CheckforCA3847:
PixelGetColor, color, 835, 620, Fast
if (color = 0xCA3847) {
    setTimer, %A_ThisLabel%, Off
    Random, rand, 15000, 25000
    Sleep, %rand%
    Click, Down, 1091 493
    Click, Up, 1135 493
    sleep, 300
    setTimer, %A_ThisLabel%, On
}
Return

^+c::
ClipSaved = %clipboard%
send ^c
ClipWait, .25 ; 250 milliseconds
ClipNew = %ClipSaved% %clipboard%
clipboard = %ClipNew%
sleep, 300
Click, 767, 558
sleep, 300
Clip0 = %ClipBoardAll%
ClipBoard = %ClipBoard%
Send ^v
Sleep 1000
Click, 767, 558
sleep, 300
Clip0 = %ClipBoardAll%
ClipBoard = %Clip0%
VarSetCapacity(Clip0, 0)
sleep, 300
Click, 851, 619
Return

除非您试图让每个事件序列“落入”下一个事件序列,否则这些 return 将对您有所帮助。