ฟอรั่ม 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


2 posters

    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class

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


    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty
    จำนวนข้อความ : 9
    ความนิยม : 0
    เข้าร่วมเมื่อ : 01/09/2012

    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class

    ตั้งหัวข้อ by kongkoi 11/09/12, 01:43 pm

    ผมเป็นคนชอบเขียนโปรแกรมอ่ะครับ (หลากหลายครับ)
    พอดีเรื่องการทำ Bot เพิ่งจะลองมาศึกษา ก็ได้ความรู้เก่า+กับแนวทางการสร้างบอท
    ก็เลยเข้าใจอะไรได้ไม่ยากเย็นนัก
    แต่บางอย่างก็มาถึงทางตันบ้าง หาทางออกเอาเองบ้าง แต่บางอย่างก็ไม่เข้าใจจริงๆ
    เลยเป็นคำถามสำหรับมือใหม่อย่างผมนะครับ
    ผมก็พอเข้าใจเรื่อง Windows/Class อะไรอยู่บ้าง ก็สามารถล้วงลึกลงไปถึงข้างในได้
    แต่พอมาทำ Bot ไม่ว่าจะเป็นใช้ Dll User32.dll เอง, AutoIt Script ก็ใช้บ้าง
    แต่ พอใช้คำสั่งอย่าง Send Key นี่มาตรฐานใช้ได้ทั้ง User32, AutoIt ด้วย
    แต่ พอใช้คำสั่ง Click Mouse หรือ AutoIt ControlClick กลับใช้ไม่ได้ แต่ Result
    แสดงผลตอบกลับ เป็น 1 (Succes) นะครับ แต่มันไม่ยอมทำงานเหมือนเรา click เอง
    นี่คือปัญหาที่ไม่เข้าใจของผม จะว่าไปว่า ผมเรียกคลาสไม่ถูกก็ไม่รู้นะ แต่ผมลองสั่งไปที่คลาสหลัก/คลาสย่อย
    หรือว่าทุก Child Window อ่ะมันตอบกลับเป็น 1 บ้าง 0 บ้าง ก็เข้าใจว่า ได้ หรือ ไม่ได้ (แต่ถ้าได้ (1) ทำไมมันไม่ยอมทำตามให้ครับ
    เลยใช้ AutoIt info ข้อมูลมาให้ผู้รู้ดู และช่วยไขข้องใจให้ผมด้วยครับ
    >>>> Window <<<<
    Title: *ละเว้นไว้ครับ รู้กัน Title หลัก*
    Class: *ละเว้นไว้ครับ รู้กัน Class หลัก*
    Position: 109, 55
    Size: 806, 628
    Style: 0x14CF0000
    ExStyle: 0x00000100
    Handle: 0x00010474

    >>>> Control <<<<
    Class:
    Instance:
    ClassnameNN:
    Name:
    Advanced (Class):
    ID:
    Text:
    Position:
    Size:
    ControlClick Coords:
    Style:
    ExStyle:
    Handle:

    >>>> Mouse <<<<
    Position: 452, 265
    Cursor ID: 0
    Color: 0x5C687B

    >>>> StatusBar <<<<

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<


    >>>> Hidden Text <<<<

    ข้อมูลเป็นเช่นนี้ครับ
    อยากใช้ ControlClick ได้ครับ รบกวนผู้รู้แนะนำหน่อย
    POS
    POS
    PSsix
    PSsix


    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty Re: รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class

    ตั้งหัวข้อ by POS 12/09/12, 04:49 pm

    คำสั่ง ControlClick ไม่ได้ทำงานได้ด้วยตัวของมันเองแต่ทำงานโดยเรียก api ของวินโดวส์ ซึ่งคำสั่งและตัวอย่างการใช้ที่ถูกเรียกใช้ผมก็บอกไปแล้วจากลิงก์ [You must be registered and logged in to see this link.] (เหมือนจะคุณจะอ่านแล้วไม่สนใจ หรือกระทั่งไปค้นหาเพิ่มเติม )

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

    [You must be registered and logged in to see this link.]

    อ่านให้ได้มากที่สุดเท่าที่จะมากได้ ค้นหาให้มาก ถ้าเป็นภาษาอื่นก็ทดลองทำแปลงคำสั่งมาใช้ใน AutoIt อย่าอ่านแค่สองสามลิงก์ แล้วด่วนสรุปว่าทำไม่ได้

    *** AutoIt info ไม่ได้ดึงทุกอย่างในหน้าต่างออกมาทั้งหมด เพราะมันเป็นเครื่องมือที่ใช้งานเบื้องต้นเท่านั้น
    avatar
    kongkoi
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty
    จำนวนข้อความ : 9
    ความนิยม : 0
    เข้าร่วมเมื่อ : 01/09/2012

    รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class Empty Re: รบกวนผู้รู้ตอบหน่อย เรื่อง Windows/Class

    ตั้งหัวข้อ by kongkoi 13/09/12, 12:12 am

    ขอบคุณครับ

    ก็ไปค้นหาข้อมูลเรื่อยๆครับ จนได้รู้พอประมาณแล้วครับ
    ก็คือ autoit --> api , user32 --> Postmessage/Sendmessage ก็เรียกมาจากที่เดียวกัน ก็เลยไม่ต่างกันในฟังก์ชั่นเบ้องต้น เพียงแต่ autoit เป็นฟังก์ชั่นสำเร็จแล้วไม่ต้องมานั่งเขียนเองเหมือน import user32.dll
    และตามที่ผมเข้าใจนะ ที่มันไม่ Click เพราะว่า โปรแกรมนั้น Child มันไม่ได้ใช้ api ในการสร้าง ออบเจ็คต่างๆของมัน จึงไม่สามารถ คลิกตรงจุดได้ ซึ่งเห็นเขาเรียก Non-ForgroundWindow มั้งครับ (ส่วนใหญ่เป็นเกมส์)
    ก็เลยศึกษา หาความรู้เพิ่มเติมอยู่ครับ ได้ ไม่ได้ ไม่รู้ครับ แต่ที่รู้ๆ ได้ความรู้จากการค้นหานี่ล่ะ ที่ว่ามันทำได้แบบนี้ แค่นี้ ได้เห็นมุมมองแปลกๆของคอมพิวเตอร์เยอะเลยอ่ะ

    เมื่อก่อนบ้าเกมส์ PS2 ก็นั่งทำแผ่น วินนิ่ง แต่ไม่มีคัยเล่นกันล่ะ เลยเลิกทำ หันมาเรียนรู้สิ่งนี้ดูบ้าง เห็นเขาบอกทำได้ ก็เก่ง เลยจะลองๆ ดู อิอิ

    ยังไงก็ขอบคุณเว็บบอร์ดนี้ที่ได้ให้ความรู้มากมายครับ

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