ใช้ AutoIT V3 แบบ 64 Bit ครับ
Win 7 64
โปรแกรมทำงานได้ตามปกติครับ แรกๆทำงานได้ครึ่งวัน หลังๆ วนแค่ 2 รอบ ก็จะไม่ยอมทำงานต่อ
ตรวจสอบไปเรื่อยๆ จนพบว่าเมื่อทำงานใน Loop นี้ไปแล้วก็จะนิ่งไปเฉยๆครับ ระบบก็ไม่ฟ้องอะไรผิดปกติ
ผมเองเข้าใจว่าเป็นที่คำสั่ง PixelSearch อาจจะกิน Memory หรืออย่างไรไม่แน่ใจครับ รบกวนผู้รู้ด้วยครับ
ผมขอตัดมาเฉพาะส่วนที่พบปัญหานะครับ
ตัวแปร $Ary_var จริงๆไม่จำเป็นต้องมีรับค่าก็ได้เพราะผมต้องการตรวจว่าพบค่าสีหรือไม่ ไม่ต้องการนำค่าสีไปใช้
เพียงแต่ที่มีเข้ามาเพราะพยายามให้มีการทับค่าในตัวแปรเดิม เพื่อแก้ไขปัญหา Memory เต็มจนระบบค้างตามที่สันนิฐานปัญหาไว้ครับ รบกวนด้วยครับ
Win 7 64
โปรแกรมทำงานได้ตามปกติครับ แรกๆทำงานได้ครึ่งวัน หลังๆ วนแค่ 2 รอบ ก็จะไม่ยอมทำงานต่อ
ตรวจสอบไปเรื่อยๆ จนพบว่าเมื่อทำงานใน Loop นี้ไปแล้วก็จะนิ่งไปเฉยๆครับ ระบบก็ไม่ฟ้องอะไรผิดปกติ
ผมเองเข้าใจว่าเป็นที่คำสั่ง PixelSearch อาจจะกิน Memory หรืออย่างไรไม่แน่ใจครับ รบกวนผู้รู้ด้วยครับ
ผมขอตัดมาเฉพาะส่วนที่พบปัญหานะครับ
Code พิมพ์ว่า:
While 1
If PixelGetColor(518,450) = 0x362F2B or PixelGetColor(518,450) = 0x362E2B Then ;พบสีในจุดค้นหา ให้ทำงาน
Sleep(800)
MouseClick("Left",496,498,1,5)
Sleep(1000)
MouseDown("left")
While PixelGetColor(566,424) = 0x000000 ;ตราบใดที่ ยังพบสีดำในพิกัดนี้จะวนทำงานในลูปต่อไป
$Ary_var = 0
$Ary_var = PixelSearch(670,540, 720,540,0xF7D690,20)
If not @error Then ;ตรวจพบสีเหลืองในพื้นที่นี้ให้กดเม้าส์ค้าง
MouseDown("left")
Sleep(100)
$Ary_var = 0
$Ary_var = PixelSearch(565,540, 600,540,0xF7D690,20)
While @error ;ตราบใดที่ยังไม่พบสีเหลืองมาในจุดค้นสีให้หน่วงเวลาแล้ววนต่อไป
Sleep(100)
$Ary_var = 0
$Ary_var = PixelSearch(565,540, 600,540,0xF7D690,20)
WEnd
MouseUp("left")
Sleep(200)
EndIf
WEnd
Sleep(6000)
While PixelGetColor(479,532) = 0xDDBA60 or PixelGetColor(479,532) = 0xC39F4F
MouseClick("Left",496,498,1)
Sleep(1000)
WEnd
EndIf
WEnd
ตัวแปร $Ary_var จริงๆไม่จำเป็นต้องมีรับค่าก็ได้เพราะผมต้องการตรวจว่าพบค่าสีหรือไม่ ไม่ต้องการนำค่าสีไปใช้
เพียงแต่ที่มีเข้ามาเพราะพยายามให้มีการทับค่าในตัวแปรเดิม เพื่อแก้ไขปัญหา Memory เต็มจนระบบค้างตามที่สันนิฐานปัญหาไว้ครับ รบกวนด้วยครับ