Autohotkey PixelSearch-即使颜色在600 x 800中未显示,也会发出警报。我做错了什么?

Autohotkey PixelSearch-即使颜色在600 x 800中未显示,也会发出警报。我做错了什么?,autohotkey,Autohotkey,当我运行下面的脚本时,即使ffff00没有显示在600 x 800的正方形中,警报也会响起。有没有什么不正确的地方 #NoEnv #SingleInstance,Force CoordMode,Pixel,Screen found=0 Gui,Add,Button,GSILENCE,Silence colors=ffff00 Loop { Loop,Parse,colors,`, { PixelSearch, OutputVarX, OutputVarY, 600, 600, 800, 80

当我运行下面的脚本时,即使ffff00没有显示在600 x 800的正方形中,警报也会响起。有没有什么不正确的地方

#NoEnv
#SingleInstance,Force
CoordMode,Pixel,Screen

found=0
Gui,Add,Button,GSILENCE,Silence

colors=ffff00
Loop
{
Loop,Parse,colors,`,
{
PixelSearch, OutputVarX, OutputVarY, 600, 600, 800, 800, ffff00, Fast RGB
If (ErrorLevel=0)
{
  Gui,Show
  found=1
  Loop
  {
    SoundPlay,*0
    If found=0
      Break
    Sleep,1000
  }
} 
Sleep,10000
Send,{F5}
}
}

SILENCE:
found=0
Gui,Hide
Return

当我运行未经编辑的代码时,我遇到了与您相同的问题。代码中的问题似乎出现在
PixelSearch
行中。实际上有两个问题:

  • 第一个是
    ColorID
    必须是十六进制值, 在您的情况下,这意味着您必须在 当前值。正如您当前看到的,AHK正在查看名为“ffff00”的变量的值,该变量没有指定任何值。我不知道为什么,但很明显,这与一切都匹配(而不是像我预期的那样,什么都不匹配)
  • 第二个问题是,在变量和 模式,或者在您的情况下,在您的颜色和
    快速RGB
    之间。虽然我不确定“快速”部分是否真的起作用,“RGB”部分肯定不起作用,因为它与青色而不是黄色匹配
  • 下面是更正的行,它使脚本适合我:

    PixelSearch , OutputVarX , OutputVarY , 600 , 600 , 800 , 800 , 0xffff00 ,, Fast RGB
    

    请注意,如果要循环使用一系列颜色,则需要将它们存储为0x个十六进制值(既可以是现有的分隔字符串,也可以是实际十六进制值的数组——AHK看起来比较宽松)

    谢谢你抽出时间来帮忙。如何将此线程标记为已解决?没问题!我的答案旁边有一个复选标记,你可以点击。