AutoHotKey:仅在按下键时才进行PixelSearch

时间:2016-03-12 19:59:07

标签: colors autohotkey

我有一个简单的颜色点击代码。

    ~C:: 
    Loop
    {
        PixelSearch, Px, Py, 300, 300, 300, 300, 0x91595c, 5, Fast
       if errorlevel
       {
          sleep 20
          return
       }
       else
       {
        Send, {LButton Down}
        Sleep, 250
        Send, {LButton Up}
        Sleep, 500
       } 
    }
    return

按下C时,会找到正确的颜色并发送一下。 但是我很累,只有按下C才能使它工作,并且当没有按下C时完成颜色搜索。

您已尝试过什么? 我尝试用这个工作:

while  KeyIsDown := GetKeyState("c", "P")

if  KeyIsDown := GetKeyState("c")

但它只是无限循环或无效。 你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

找到解决方案:

 $F2:: 
    Loop
    {
        PixelSearch, Px, Py, 300, 300, 300, 300, 0x91595c, 5, Fast
       if errorlevel
       {
          sleep 20
          return
       }
       else
        if GetKeyState("C","p") 
       {
        Send, {LButton Down}
        Sleep, 250
        Send, {LButton Up}
        Sleep, 500
       } 
    }
    return

很高兴看到你有更好的解决方案。

答案 1 :(得分:0)

如果我理解你的话,你想继续循环,直到你释放 C 。如果是这样,你不应该在循环中0x8086,因为这会阻止它。

list(<generator expression>)

此外,您可以将return作为热键,如果您真的只想“点击”,则不需要复杂的$F2:: Loop { PixelSearch, Px, Py, 300, 300, 300, 300, 0x91595c, 5, Fast if errorlevel { sleep 20 } else if GetKeyState("C","p") { Send, {LButton Down} Sleep, 250 Send, {LButton Up} Sleep, 500 } else break ; C was released: exit the loop, thus exit the thread } return 等。

建议代码(也更紧凑):

~C