获取

2016-12-31 42 views
1

我使用PixelSearch功能的所有像素的位置,我知道如何找到1个像素符合我的标准的,但问题是,我想找到所有像素的具体颜色,这增加array,所以我可以用它来rand之一,然后点击它。获取

的源代码:

Local $aCoord = PixelSearch(0, 0, $clientSize[0], $clientSize[1], 0x09126C, 10, 1, $hWnd) 
If Not @error Then 
    ; add to array and search next 
Else 
    GUICtrlSetData($someLabel, "Not Found") 
EndIf 

我想找到所有像素,没有一个 “第一”。我怎样才能做到这一点?我错过了什么吗?

+0

请提供您拥有的代码。也许在密钥上匹配的代码? –

+0

我不知道,“自动,像素搜索,找到所有像素,而不是1”是难以理解,但okey我会尝试更准确地解释它... – ulou

+0

我认为任何普通的Autoit解决方案可能会相当缓慢 – Richard

回答

3

不能使用PixelSearch完成,因为它找到匹配的像素时停止执行。

它可以通过在您所在地区循环使用PixelGetColor来完成。喜欢的东西:

For $x = 0 To $clientSize[0] Step 1 
    For $y = 0 To $clientSize[1] Step 1 
     If PixelGetColor($x,$y,$hWnd) = 0x09126C Then 
     ;Add $x and $y to Array using _ArrayAdd() (or whatever you prefer) 
     EndIf 
    Next 
Next 

这可能会觉得速度慢于PixelSearch,因为它现在拥有扫描,而不是在第一场比赛停止整个区域,但它不应该是,因为PixelSearch是基于同样的原则。

+0

使用它可以更快地实现某些功能:https://www.autoitscript.com/forum/topic/126430-advanced-pixel-search-library/ – Richard