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


คำสั่งในการ WinWaitActive

Share

santipab_wzn
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 13
ความนิยม : 0
เข้าร่วมเมื่อ : 29/12/2011

คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by santipab_wzn on 03/01/12, 12:57 am

Run("C:\Program Files\GameWorld\Laghaim\Laghaim.exe")
Sleep(4000)
Global $GameHD
Func _PSsixLoadH($gtitle)
$GameHD = WinGetHandle($gtitle)
If @error Then
MsgBox(4096, "Error", "ไม่พบหน้าต่างเกม")

Return 1
EndIf
EndFunc

If _PSsixLoadH("Laghaim") Then WinActivate($GameHD)

if WinActivate($GameHD) Then Send("{ENTER}")
Sleep(145000)
Send("{TAB}")
sleep(2000)
Send("ไอดีเกม")
Sleep(2000)
Send("{TAB}")
Send("พลาสเกม")
sleep(3000)
MouseClick("left",49,445,1,400)
sleep(3000)
Send("{ENTER}")
sleep(4200)
MouseClick("left",540,228,1,500)
sleep(2500)
MouseClick("left",317,535,1,300)

โค๊ตนี้ผมเขียนสำหรับ Login เกม laghaim อัตโนตมัติ แต่ปัญหาคือ ตอนรอโหลดก่อนถึงหน้าต่าง login ID password ผมใช้วิธีกะเวลาเอา ตรง Sleep(145000) ซึ่งแน่นอนมันใช้ได้แค่เครื่องเรา ถ้าจะใช้กับเครื่องอื่นกะเวลาไม่ถูกแน่นอนทำให้โปรแกรมใช้ได้จำกัด ผมเลยใช้คำสั่ง WinWaitActive ซึ่งจะจับ title bar ไม่ได้เพราะ title bar ตอนโหลดกับตอน Login ชื่อเดียวกันคือ Laghaim จำเป้นต้องจับตัวอักษรแทน ซึ่งผมได้ลองเขียนแล้วแต่ว่ามันกลับไม่ทำคำสั่งต่อไปเลย ผมจับชื่อ Sever ซึ่งน่าจะจับได้เพราะเป็นตัวหนังสือที่ใช้ เมาส์คลิกได้ ผมเลยอยากถามว่า

1.ควรเขียนอย่างไรใช้คำสั่งอะไรดีในการแทน การกะ้เวลา โดยใช้ sleep
2.ตรง Send("ไอดีเกม") กับ Send("พลาสเกม") ถ้าผมอยากสร้างอีกโปรแกรมหนึ่งเป้นโปรแกรมให้กรอก ID Pass แล้วรับมาระบุตรง Send("ไอดีเกม") Send("พลาสเกม")ควรเขียนอย่างไรครับ จะเชื่อต่อกันอย่างไร

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


ชินจัง2

asokura
PSsix Member High Class
PSsix Member High Class

PSsix Game Coder
จำนวนข้อความ : 72
ความนิยม : 11
เข้าร่วมเมื่อ : 03/09/2011

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by asokura on 04/01/12, 08:32 pm

ข้อ1 ใช้การตรวจสีแทนก็ได้ เช่น สังเกตุตอนโหลดเกม หน้าต่างจะเปนสีดำ ก็ให้ตั้งเงื่อนไขว่าถ้าหน้าต่างไม่ใช่สีดำให้ทำคำสั่งต่อไป ในการใส่ไอดี และพาส
ข้อ2 ลองใช้คำสั่ง Inputbox ดูน๊ะครับ ตัวอย่างใน help เหมือนกับที่นายต้องการเลย

santipab_wzn
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 13
ความนิยม : 0
เข้าร่วมเมื่อ : 29/12/2011

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by santipab_wzn on 05/01/12, 02:40 am

โอ๊ ขอบคุรมากเลยครับ คิดไม่ถึงจริงๆ พี่ครับ ผมเจอปัญหาอีกอย่างเข้าละ คือ โปรแกรม AU3Info มันจับพิกัดไม่ตรงกับอ่ะครับ แล้วมันจะมีปัญหาตอนดึงค่าสี ทำให้มันไปดึงค่าสีพิกัดอีกที่เลยไม่ยอมทำตาเงื่อนไขเลย เพราะผมลองสังให้มันไปคลิกเล่นๆ ทั้งที่ๆเอา AU3Info ม๊าคพิกัดตรงที่จะคลิกแล้วนะครับ พอเอาค่ามากรอกลองรันโปรแกรมดู ปรากฏว่ามันเกินไปคลิกไม่โดนผมต้องกะปรับ แกน x แกน y ลดเพิ่มเอง ไม่ทราบจะแก้อย่างไรดีหว่า T__T"

asokura
PSsix Member High Class
PSsix Member High Class

PSsix Game Coder
จำนวนข้อความ : 72
ความนิยม : 11
เข้าร่วมเมื่อ : 03/09/2011

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by asokura on 05/01/12, 01:13 pm

santipab_wzn พิมพ์ว่า:โอ๊ ขอบคุรมากเลยครับ คิดไม่ถึงจริงๆ พี่ครับ ผมเจอปัญหาอีกอย่างเข้าละ คือ โปรแกรม AU3Info มันจับพิกัดไม่ตรงกับอ่ะครับ แล้วมันจะมีปัญหาตอนดึงค่าสี ทำให้มันไปดึงค่าสีพิกัดอีกที่เลยไม่ยอมทำตาเงื่อนไขเลย เพราะผมลองสังให้มันไปคลิกเล่นๆ ทั้งที่ๆเอา AU3Info ม๊าคพิกัดตรงที่จะคลิกแล้วนะครับ พอเอาค่ามากรอกลองรันโปรแกรมดู ปรากฏว่ามันเกินไปคลิกไม่โดนผมต้องกะปรับ แกน x แกน y ลดเพิ่มเอง ไม่ทราบจะแก้อย่างไรดีหว่า T__T"

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

วิธีแก้ คือ Admin เคยบอกว่า ให้เข้าไป set Options >>> Magnify พอเราตรวจพิกัดและสีมันจะเป็นแบบซูมทำให้แม่นยำขึ้น

aut
PSsix Powerful Scripting Class
PSsix Powerful Scripting Class

PSsix Game Coder
จำนวนข้อความ : 472
ความนิยม : 125
เข้าร่วมเมื่อ : 24/07/2010

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by aut on 05/01/12, 08:37 pm

[You must be registered and logged in to see this link.] หน้าบ๊อกอะอ่านบ้างเป่า ถึงว่าแอดมินเด๋วนี้เอาบทความเข้าห้องpหมดเอามาลงหน้าบ๊อกพวกนี้ก้อไม่อย่าอยู่ดีเหอเหอ
ชินจัง ชินจัง3

santipab_wzn
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 13
ความนิยม : 0
เข้าร่วมเมื่อ : 29/12/2011

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by santipab_wzn on 06/01/12, 02:58 am

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

santipab_wzn
สมาชิกทั่วไป
สมาชิกทั่วไป


จำนวนข้อความ : 13
ความนิยม : 0
เข้าร่วมเมื่อ : 29/12/2011

Re: คำสั่งในการ WinWaitActive

ตั้งหัวข้อ by santipab_wzn on 06/01/12, 03:11 am

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

    เวลาขณะนี้ 03/12/16, 02:54 am