AHK 如何让一个 SetTimer 启动另一个,而不是反转
AHK How to make one SetTimer launch other, and than reversal
代码目标:
计时器 CheckStart 每 3 秒迭代一次,直到找到选定的颜色。
如果找到像素 - 它会自行停止并启动 CheckStop 计时器,每 3 秒寻找另一个像素。
重复一遍
还有一个键绑定来检查最后启动了哪个计时器。
#NoEnv
SendMode Input
checkstate = 0 ;just for checking state
SetTimer, CheckStart, 3000
Return
CheckStart:
PixelSearch, xx, zz, 710, 460, 730, 480, 0x385982, 0, Alt RGB
if !ErrorLevel {
checkstate = 1
SetTimer, CheckStart, Off
SetTimer, CheckEnd, 3000
Gosub, CheckEnd
}
Return
CheckEnd:
PixelSearch, xx, zz, 670, 160, 725, 200, 0xE60014, 0, Alt RGB
if !ErrorLevel {
checkstate = 0
SetTimer, CheckEnd, Off
SetTimer, CheckStart, 3000
Gosub, CheckStart
}
Return
^!z:: ; Control+Alt+Z
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%, Alt RGB
MsgBox (checkstate%) colour: %color%.
return
我得到的:
- 在我向第一个计时器提供所需的颜色之前,键绑定延迟工作,仅在迭代之间显示状态。我可以让它异步吗?
- 在我向第一个计时器提供所需的颜色后,检查器变为“1”,但 CheckEnd 计时器未启动。 (因此键绑定立即开始工作)
我做错了什么?或者它只是禁止通过定时器启动定时器?
没有像Alt
这样的像素搜索模式,那只适用于PixelGetColor
。
我假设这里的问题只是像素搜索永远占用了时间。
在Fast
模式下添加
所以不要 Alt RGB
试试 Fast RGB
.
代码目标:
计时器 CheckStart 每 3 秒迭代一次,直到找到选定的颜色。
如果找到像素 - 它会自行停止并启动 CheckStop 计时器,每 3 秒寻找另一个像素。
重复一遍
还有一个键绑定来检查最后启动了哪个计时器。
#NoEnv
SendMode Input
checkstate = 0 ;just for checking state
SetTimer, CheckStart, 3000
Return
CheckStart:
PixelSearch, xx, zz, 710, 460, 730, 480, 0x385982, 0, Alt RGB
if !ErrorLevel {
checkstate = 1
SetTimer, CheckStart, Off
SetTimer, CheckEnd, 3000
Gosub, CheckEnd
}
Return
CheckEnd:
PixelSearch, xx, zz, 670, 160, 725, 200, 0xE60014, 0, Alt RGB
if !ErrorLevel {
checkstate = 0
SetTimer, CheckEnd, Off
SetTimer, CheckStart, 3000
Gosub, CheckStart
}
Return
^!z:: ; Control+Alt+Z
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%, Alt RGB
MsgBox (checkstate%) colour: %color%.
return
我得到的:
- 在我向第一个计时器提供所需的颜色之前,键绑定延迟工作,仅在迭代之间显示状态。我可以让它异步吗?
- 在我向第一个计时器提供所需的颜色后,检查器变为“1”,但 CheckEnd 计时器未启动。 (因此键绑定立即开始工作)
我做错了什么?或者它只是禁止通过定时器启动定时器?
没有像Alt
这样的像素搜索模式,那只适用于PixelGetColor
。
我假设这里的问题只是像素搜索永远占用了时间。
在Fast
模式下添加
所以不要 Alt RGB
试试 Fast RGB
.