ฟอรั่ม PSsix

Would you like to react to this message? Create an account in a few clicks or log in to continue.

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


    โปรแกรมทำงานไปสักพักจะค้างไปครับ

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


    โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty
    จำนวนข้อความ : 9
    ความนิยม : 3
    เข้าร่วมเมื่อ : 09/05/2013

    โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty โปรแกรมทำงานไปสักพักจะค้างไปครับ

    ตั้งหัวข้อ by ironsulfide 12/04/14, 10:07 am

    ใช้ AutoIT V3 แบบ 64 Bit ครับ
    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 เต็มจนระบบค้างตามที่สันนิฐานปัญหาไว้ครับ   รบกวนด้วยครับ
    avatar
    ironsulfide
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty
    จำนวนข้อความ : 9
    ความนิยม : 3
    เข้าร่วมเมื่อ : 09/05/2013

    โปรแกรมทำงานไปสักพักจะค้างไปครับ Empty Re: โปรแกรมทำงานไปสักพักจะค้างไปครับ

    ตั้งหัวข้อ by ironsulfide 13/04/14, 09:10 am

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

    ขอบคุณเพื่อนๆที่เข้ามาช่วยดูให้ครับ

      เวลาขณะนี้ 29/03/24, 07:29 am