ช่วยดูโค๊ดให้หน่อยครับ ลองมา สามวันแล้วยังไม่ได้เลย (แบบว่าผมอ่อนมาก เพิ่งศึกษามาได้ 10 วัน)
โค๊ต อันนี้มันหาเจอ แค่อันเีดียว
การทดสอบทำได้โดย สร้าง Forlder ชือ Galaxy 1 และ Galaxy 2 บนหน้าจอ Desktop แล้วใ้ห้มันลองหาดูมันจะเจอแค่อันเดียว
FindGalaxyFolder()
Func FindGalaxyFolder()
; Example to find Folder Name "Galaxy" in DeskTop
Dim $oxHighlights_Color = 0xFFFFA4
Dim $aHighlights_Color[2] = [327,246]
Dim $aReference_Color[3] = [0xffffff,0xffffff,0xffffff]
Dim $aReference_Color_X[3] = [321,329,344]
Dim $aReference_Color_Y[3] = [278,285,287]
Dim $aWantMoveAtThis[2] = [336,256]
Dim $nCheckPoint = 0 ; Value +1 If Color is Correct
Dim $aDifference_Refference_Color[2]
Dim $aDifference_WantMoveAtThis[2]
Dim $aNewReference_Point[2] ; Store Value Of Calculate New Refference Color Position
Dim $aNewWantMoveAtThis[2]
$nLeft = 0
$nScanTop = 0
$nRight = 1431
$nBottom = 863
Do
$aDetect_Color_Point = PixelSearch($nLeft,$nScanTop,$nRight,$nBottom,$oxHighlights_Color)
If Not @error Then
$nLeft = $aDetect_Color_Point[0]+1
For $i = 0 To UBound($aReference_Color)-1
; Calculate Difference Position Value Between Highlights Color and Refference Color
$aDifference_Refference_Color[0] = $aHighlights_Color[0] - $aReference_Color_X[$i]
$aDifference_Refference_Color[1] = $aHighlights_Color[1] - $aReference_Color_Y[$i]
; Calculate New Refference Color Position
$aNewReference_Point[0] = $aDetect_Color_Point[0] - $aDifference_Refference_Color[0]
$aNewReference_Point[1] = $aDetect_Color_Point[1] - $aDifference_Refference_Color[1]
; Compare Color At Refference Position
$hGetColorReferrence = PixelGetColor($aNewReference_Point[0],$aNewReference_Point[1])
If $aReference_Color[$i] = $hGetColorReferrence Then
$nCheckPoint = $nCheckPoint+1
EndIf
Next
If $nCheckPoint = UBound($aReference_Color) Then
; When Found Move to AT
$aDifference_WantMoveAtThis[0] = $aHighlights_Color[0] - $aWantMoveAtThis[0]
$aDifference_WantMoveAtThis[1] = $aHighlights_Color[1] - $aWantMoveAtThis[1]
$aNewWantMoveAtThis[0] = $aDetect_Color_Point[0] - $aDifference_WantMoveAtThis[0]
$aNewWantMoveAtThis[1] = $aDetect_Color_Point[1] - $aDifference_WantMoveAtThis[1]
MouseMove($aNewWantMoveAtThis[0],$aNewWantMoveAtThis[1])
EndIf
Else
ExitLoop
EndIf
Until $aDetect_Color_Point = @error
EndFunc
โค๊ต อันนี้มันหาเจอ แค่อันเีดียว
การทดสอบทำได้โดย สร้าง Forlder ชือ Galaxy 1 และ Galaxy 2 บนหน้าจอ Desktop แล้วใ้ห้มันลองหาดูมันจะเจอแค่อันเดียว
FindGalaxyFolder()
Func FindGalaxyFolder()
; Example to find Folder Name "Galaxy" in DeskTop
Dim $oxHighlights_Color = 0xFFFFA4
Dim $aHighlights_Color[2] = [327,246]
Dim $aReference_Color[3] = [0xffffff,0xffffff,0xffffff]
Dim $aReference_Color_X[3] = [321,329,344]
Dim $aReference_Color_Y[3] = [278,285,287]
Dim $aWantMoveAtThis[2] = [336,256]
Dim $nCheckPoint = 0 ; Value +1 If Color is Correct
Dim $aDifference_Refference_Color[2]
Dim $aDifference_WantMoveAtThis[2]
Dim $aNewReference_Point[2] ; Store Value Of Calculate New Refference Color Position
Dim $aNewWantMoveAtThis[2]
$nLeft = 0
$nScanTop = 0
$nRight = 1431
$nBottom = 863
Do
$aDetect_Color_Point = PixelSearch($nLeft,$nScanTop,$nRight,$nBottom,$oxHighlights_Color)
If Not @error Then
$nLeft = $aDetect_Color_Point[0]+1
For $i = 0 To UBound($aReference_Color)-1
; Calculate Difference Position Value Between Highlights Color and Refference Color
$aDifference_Refference_Color[0] = $aHighlights_Color[0] - $aReference_Color_X[$i]
$aDifference_Refference_Color[1] = $aHighlights_Color[1] - $aReference_Color_Y[$i]
; Calculate New Refference Color Position
$aNewReference_Point[0] = $aDetect_Color_Point[0] - $aDifference_Refference_Color[0]
$aNewReference_Point[1] = $aDetect_Color_Point[1] - $aDifference_Refference_Color[1]
; Compare Color At Refference Position
$hGetColorReferrence = PixelGetColor($aNewReference_Point[0],$aNewReference_Point[1])
If $aReference_Color[$i] = $hGetColorReferrence Then
$nCheckPoint = $nCheckPoint+1
EndIf
Next
If $nCheckPoint = UBound($aReference_Color) Then
; When Found Move to AT
$aDifference_WantMoveAtThis[0] = $aHighlights_Color[0] - $aWantMoveAtThis[0]
$aDifference_WantMoveAtThis[1] = $aHighlights_Color[1] - $aWantMoveAtThis[1]
$aNewWantMoveAtThis[0] = $aDetect_Color_Point[0] - $aDifference_WantMoveAtThis[0]
$aNewWantMoveAtThis[1] = $aDetect_Color_Point[1] - $aDifference_WantMoveAtThis[1]
MouseMove($aNewWantMoveAtThis[0],$aNewWantMoveAtThis[1])
EndIf
Else
ExitLoop
EndIf
Until $aDetect_Color_Point = @error
EndFunc