我是自学程序员,一直在为这个问题苦苦挣扎一段时间。如果有人能指出我正确的方向,我会很高兴。
我拥有的:一个完美工作的 pixelsearch1 autoit 脚本。我想要实现的:将该代码放入另一个 pixelsearch2 中。因此,如果 pixelsearch2 没有错误,则继续使用 pixelsearch1,否则做其他事情。
我的 pixelsearch2 在没有 pixelsearch1 的情况下工作正常。它识别颜色,并且两个不错误结束 else 语句都有效。但是,如果我将 pixelsearch1 放在非错误部分,像素 earch1 将无法工作。
所以这是我完美工作的 pixelsearch1 函数:
Func pixelSearch1()
$search = PixelSearch(106, 789, 108, 787, 0xDB0040, 5)
If Not @error Then
MouseMove($search[0], $search[1], 0)
Sleep(100)
Send("A")
EndIf
EndFunc
这就是 pixelsearch1 不起作用的地方:
While 1
PixelSearch(330, 780, 332, 782, 0x8C30C9, 5)
If Not @error Then
pixelSearch1()
Else
;some other stuff which works
Endif
WEnd
请注意,如果我在"如果不是@error那么"-"其他"之间放置任何其他内容,那么它就可以工作了。
我可以通过更新第一个函数来解决这个问题,使用不同的选项卡并在 endif 和 endfunc 之间设置睡眠。
我不知道为什么它现在有效而不是以前有效,但它有效。