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


ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

Share

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


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

ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by cpengineer on 01/10/12, 11:25 pm

ผมติดตั้ง autoit v3 ตัวล่าสุด แล้วเขียนชุดคำสั่งมา 1 ชุด ให้ send ตัวอักษร 1 ตัวซ้ำๆ
เมื่อเปิดโปรแกรม แล้วเปลี่ยนหน้าต่างไปยัง notepad จะมีเลข 1 ขึ้นซ้ำๆ ตามที่เขียนไว้
แต่เมื่อเปลี่ยนหน้าต่างไปยังหน้าต่างเกมส์ กลับไม่มีสิ่งใดเกิดขึ้น (ตัวเกมส์มี xtrap)

ผมอ่านดูหลายกระทู้ พบว่าให้ใช้ win7 x64 แล้ว complie script เป็น x64 ด้วย แต่ก็ไม่ได้ผล
ท่านใดพอจะทราบบ้างไหมครับ ว่าจะผ่าน xtrap ได้อย่างไร

em228

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


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by cpengineer on 02/10/12, 03:26 am


ผมก็ตั้งให้เป็น x64 แล้วนะครับ ยังติด xtrap อยู่เลย
ลองใช้ ControlSend ดู ปรากฎว่าพิมพ์ในช่อง Chat ได้
แต่ให้กดปุ่ม Control ใช้ Skill หรือ เดิน ไม่ได้

em228

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


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by cpengineer on 02/10/12, 03:42 am

ทำไมรูปหน้าต่างตอน complie ไม่เหมือนกันกับที่คุณ POS ได้โพสเอาไว้ที่ [You must be registered and logged in to see this link.] นะ
em229

POS
PSsix
PSsix


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by POS on 02/10/12, 09:11 pm

AutoIt ของผมเป็นเวอร์ชัน 3.3.8.1

คำสั่ง Send จะส่งค่ากดคีย์ก็ต่อเมื่อคลิกที่หน้าต่างนั้นๆ ให้ active ก่อน
คำสั่ง controlsend จะส่งค่าคีย์ได้เป็นบางเกมส์เท่านั้น

ด้านล่างเป็นสคริปต์ทดสอบส่งค่าคีย์ 1 เข้าไปยังหน้าต่างเกมส์ใช้ได้เป็นบางเกมส์เท่านั้นเช่นกัน

Code:


#RequireAdmin
#include <Array.au3>
#include <Constants.au3>
#include <WinAPI.au3>
Opt("WinTitleMatchMode" , 4)
Opt("WinSearchChildren" , 1)

Global $avChildren



$hWnd = WinGetHandle('ใส่ชื่อไตเติลเกมส์')

Sleep(1000)

WinListChildren($hWnd, $avChildren)


_ArrayDisplay($avChildren) ;; แสดงหน้าต่างย่อยที่รวมกันอยู่  ในหน้าต่างเกมส์ทั้งหมด
MsgBox(0,"","ทดสอบเสร็จเรียบร้อย")
Exit


Func WinListChildren($hWnd, ByRef $avArr)
    If UBound($avArr, 0) <> 2 Then
        Local $avTmp[10][2] = [[0]]
        $avArr = $avTmp
    EndIf
    Local $hChild = _WinAPI_GetWindow($hWnd, $GW_CHILD)


    While $hChild
        If $avArr[0][0]+1 > UBound($avArr, 1)-1 Then ReDim $avArr[$avArr[0][0]+10][2]
        $avArr[$avArr[0][0]+1][0] = $hChild
        $avArr[$avArr[0][0]+1][1] = _WinAPI_GetWindowText($hChild)
        $avArr[0][0] += 1
        WinListChildren($hChild, $avArr)
        $hChild = _WinAPI_GetWindow($hChild, $GW_HWNDNEXT)
                  ControlSend($hChild,"",   "","1")  ; ทดสอบส่งคีย์ 1
                  Sleep(100)
                  ControlSend($hChild,"",$hChild,"1")  ; ทดสอบส่งคีย์ 1
      Sleep(100)
    WEnd

    ReDim $avArr[$avArr[0][0]+1][2]
EndFunc

 


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

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

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

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


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by cpengineer on 03/10/12, 12:53 am

ทดลองด้วย Script ของท่าน POS ได้ดังรูป


ส่วนในตัวเกมส์ ไม่มีอะไรเกิดขึ้น (ไม่มีตัวเลขส่งไปด้วยครับ)

em228

POS
PSsix
PSsix


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by POS on 04/10/12, 06:14 am

รหัสตัวเลขเป็นค่าที่ดึงมาจากหน้าต่างย่อย หากตรงนี้ไม่สามารถใช้งานได้ก็คงไม่ได้แล้วครับ


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

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

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

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


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by cpengineer on 04/10/12, 01:57 pm

หมดหวัง em229

แต่ทำไมผมใช้
Code:

$clientName = "ชื่อเกมส์"

While 1
    ControlSend($clientName, "", "", "{ENTER}1{ENTER}")
    Sleep(1000)
WEnd

มันส่งเลข 1 ไปที่หน้าต่าง Chat ในเกมส์ตลอดนะครับ
แต่ Script ที่ท่าน POS ให้ไว้ มันกลับส่งไม่ไปเลยถึงแม้ในหน้าต่าง Chat ก็ตาม

em228

ขอบคุณมากครับ

POS
PSsix
PSsix


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

Re: ทำไมใช้ Windows 7 x64 แล้ว แต่ตัว Script ไม่ยอมทำงานในหน้าต่างเกมส์

ตั้งหัวข้อ by POS on 06/10/12, 01:21 am

ControlSend จะส่งค่าไปยังหน้าต่างแรกสุดที่รับค่า ในกรณีนี้ของคุณคือช่องแชท แต่ตามสคริปต์ด้านบนจะค้นหาหน้าต่างย่อยที่อยู่ในหน้าต่างหลักเพื่อส่งค่าเข้าไป (ซึ่งในกรณีของคุณไม่ได้ผลอยู่ดี)

และอย่างที่ผมเคยเขียนในบทความ Controlsend ไม่สามารถใช้ได้กับทุกเกมส์ (อยากได้รายละเอียดเพิ่มเติมคลิกที่ตัวคำสั่ง กด F1 จะมีคำอธิบายออกมา)เมื่อมันไม่ได้ก็ต้องยอมรับครับ


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

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

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

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