ฟอรั่มของบล็อก http://pssix.blogspot.com


จะหารูปที่เหมือนกันทั้งสองรูปบนหน้าจอเจอได้ยังไงครับ

Share

mrsomporn
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 2
ความนิยม : 0
เข้าร่วมเมื่อ : 01/06/2012

จะหารูปที่เหมือนกันทั้งสองรูปบนหน้าจอเจอได้ยังไงครับ

ตั้งหัวข้อ by mrsomporn on 27/06/12, 05:24 pm

ช่วยดูโค๊ดให้หน่อยครับ ลองมา สามวันแล้วยังไม่ได้เลย (แบบว่าผมอ่อนมาก เพิ่งศึกษามาได้ 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

POS
PSsix
PSsix


จำนวนข้อความ : 1151
ความนิยม : 323
เข้าร่วมเมื่อ : 19/07/2010

Re: จะหารูปที่เหมือนกันทั้งสองรูปบนหน้าจอเจอได้ยังไงครับ

ตั้งหัวข้อ by POS on 28/06/12, 11:16 am

เข้าไปอ่านวิธีการใช้คำสั่ง PixelGetColor และ PixelSearch ที่หน้าบล็อกให้เข้าใจก่อนครับ เพราะโค้ดที่คุณนำมา ใช้คำสั่งสองอย่างนี้เป็นหลัก (ไม่สามารถนำไปใช้กับวินโดวส์ทุกเวอร์ชั่น เนื่องจากสีของโฟลเดอร์ในบางเวอร์ชั่นจะไม่เหมือนกัน)

การเอาแค่สคริปต์มาแก้ไข โดยไม่รู้ว่าแต่ละคำสั่งทำงานอย่างไร หรือมีแนวคิดในการทำอย่างไร แม้ว่าจะแก้ไขให้สามารถทำงานได้ แต่จะไม่สามารถพลิกแพลงไปเป็นอย่างอื่นได้ เพราะไม่มีพื้นฐาน และยิ่งจะก่อให้เกิดปัญหาตามมาอีกเมื่อคิดจะทำโปรแกรมให้มีความซับซ้อนขึ้น สุดท้ายส่วนใหญ่ก็จะจบลงที่เลิกทำ


||----------------------------------------------------------------------------------------------------------------||

กลุ่ม AutoIt ในเฟสบุ๊ค
[You must be registered and logged in to see this link.]

++++++++++++++++++++++++++++++++++++++++++++
pssix.blogspot.com

mrsomporn
มือใหม่เพิ่งสมัคร
มือใหม่เพิ่งสมัคร


จำนวนข้อความ : 2
ความนิยม : 0
เข้าร่วมเมื่อ : 01/06/2012

Re: จะหารูปที่เหมือนกันทั้งสองรูปบนหน้าจอเจอได้ยังไงครับ

ตั้งหัวข้อ by mrsomporn on 28/06/12, 03:06 pm

ขอบคุณที่แนะนำครับ
em228 ผมคงต้องอ่านให้มากกว่านี้

เดี๋ยวไปลองใหมอีกซักตั่ง ซิ em233

    เวลาขณะนี้ 08/12/16, 02:47 pm