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


สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

Share

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


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

สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by autoitnew on 18/08/11, 06:47 pm

พอดีผมลองแบบไม่ใส่sleepแล้ว แต่เหมือนมันยังทำงานต่อบรรทัดอยู่ทำให้การคลิกเม้าส์ช้า
ถ้าจะทำให้มันกดพร้อมกันเลย โดยกดปุ่มกับคลิกเราจะมีวิธีเขียนโค้ดอย่างไรคับ ขอบคุณครับ
avatar
aut
PSsix Powerful Scripting Class
PSsix Powerful Scripting Class

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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by aut on 18/08/11, 07:21 pm

นายก้อใส่downกับupต่อดิ

Send("{SHIFTDOWN}")
Sleep(100)
MouseClick("left", 100, 500,1 )
Sleep(100)
Send("{SHIFTUP}")


Send("{CTRLDOWN}")
Sleep(100)
MouseClick("left", 100, 500,1 )
Sleep(100)
Send("{CTRLUP}")


Send("{a down}")
Sleep(100)
MouseClick("left", 100, 500,1 )
Sleep(100)
Send("{a up}")

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


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by autoitnew on 18/08/11, 08:30 pm

คือแบบให้มันทำทั้ง2อย่างในครั้งเดียวเลยน่ะครับ เช่นให้กดปุ่ม0กับคลิกที่พิกัดที่เราเอาเม้าส์ไปวางไว้ที่ตำแหน่งแล้วในเวลาเดียวกันเลยน่ะครับ แบบทำ2คำสั่งในครั้งเดียวกันไปเลยครับ เพราะปัญหาคือถ้าคลิกเม้าส์ช้ากว่ากดปุ่มแล้วเราโดนลุมเวทจะโดนยกเลิกน่ะครับ ขอบคุณครับ
avatar
aut
PSsix Powerful Scripting Class
PSsix Powerful Scripting Class

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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by aut on 19/08/11, 07:16 pm

บอกไม่ได้อะนายเอาสคิปไปลองเป่า

Send("{0 down}")
Sleep(100)
MouseClick("left", 100, 500,1 );เปี่ยนพิกัด
Sleep(100)
Send("{0 up}")
avatar
rolovely
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 193
ความนิยม : 24
เข้าร่วมเมื่อ : 15/10/2010
อายุ : 28
ที่อยู่ : THAILAND

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by rolovely on 19/08/11, 10:19 pm

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

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


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by autoitnew on 19/08/11, 11:36 pm

rolovely พิมพ์ว่า:ทำเองบ้างนะ อย่างอมืองอเท้าขอ เกิดถ้าคุณไม่ลองเสี่ยง แล้วจะรู้ได้ไงว่าใช่ หรือไม่

ลองทำเองตลอดครับ จนว่าไม่ได้จริงๆถึงมาถามครับ

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

ถ้าเข้าใจว่าผมเป็นแบบนั้น เข้าใจซะใหม่ด้วยนะครับ

ถ้างอมืองอเท้า ผมต้องพิมว่า ต้องการสคริป.......ต่างๆนา
โดยไม่เอาแค่บางส่วนเอาทั้งตัวเลยจะง่ายกว่าไหมครับ


แก้ไขล่าสุดโดย autoitnew เมื่อ 19/08/11, 11:38 pm, ทั้งหมด 1 ครั้ง (Reason for editing : เพิ่มเติม)
avatar
POS
PSsix
PSsix


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by POS on 20/08/11, 08:07 am

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


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


Code:

#include <Misc.au3>

While (Not _IsPressed("1B")) ;กด ESC ปิดโปรแกรม
   Send("{0 down}") ;กดปุ่ม 0
   Sleep(100)
   MouseClick("left") ;คลิกเม้าส์ซ้าย
   Sleep(100)
   Send("{0 up}") ; ปล่อยปุ่ม 0
WEnd




ตัวอย่างอีกแบบกดปุ่ม Ctrl ค้างไว้แล้วกดปุ่ม A


Code:

#include <Misc.au3>

While (Not _IsPressed("1B")) ;กด ESC ปิดโปรแกรม
   Send("{ctrldown}")
   Sleep(100)
   Send("a")
   Sleep(100)
   Send("{ctrlup}")
WEnd


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

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

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

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


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by autoitnew on 24/08/11, 02:08 am

ขอบคุณครับ คุณPOS

รบกวนถามต่อเรื่องmultilevel pointerครับ

สคริปผมมีดังนี้

Global $StaticOffset = "0x00bcbb60" ;จากceตามตัวอย่าง
Global $Offset[4]
$Offset[0] = 0
$Offset[1] = 0x0 ;จากceอันล่างสุด
$Offset[2] = 0x100
$Offset[3] = 0x5b08;จากceอันบนสุด
$memopen = _MEMORYOPEN(ProcessExists("wingwing.exe"))
$BaseAddr = _MemoryGetBaseAddress($memopen, 1)
$FinalAddr = $BaseAddr + $StaticOffset
$value = _MemoryPointerRead($FinalAddr, $memopen, $Offset)
_MemoryPointerWrite($FinalAddr, $memopen, $Offset, "99999")

แต่มันไม่สามารถแก้ค่าได้น่ะครับตัวNomadใช้ของpssixแล้วน่ะครับ
ลองอ่านตามบทที่6แล้วก็ยังแก้ไขไม่ได้
ต้องแก้ไขอย่างไรถึงจะทำให้สคริปแก้ค่าได้ถูกต้องครับ ขอบคุณครับ
avatar
POS
PSsix
PSsix


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by POS on 24/08/11, 06:26 am

ปิดแล้วเปิดเกมส์ใหม่ แล้วโหลดค่ามัลติพ้อยเตอร์ที่หาได้ใน CE ดูอีกครั้ง ดูว่ายังชี้ไปยังตำแหน่งที่เก็บค่าได้ถูกต้องหรือไม่

วิธีเซฟคลิกไปที่เมนู File > save จะได้ไฟล์ .ct

วิธีโหลดคลิกไปที่เมนู File > load โหลดไฟล์ .ct ที่เซฟเข้ามาในโปรแกรม CE

ถ้าได้แสดงว่าสคริปต์มีปัญหาลองส่งตัวเกมส์และค่ามัลติพ้อยเตอร์ที่เซฟมาให้ผมตรวจดู



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

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

++++++++++++++++++++++++++++++++++++++++++++
pssix.blogspot.com
avatar
POS
PSsix
PSsix


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

Re: สอบถามการทำให้กดปุ่มกับclickmouseพร้อมกันในคำสั่งเดียวครับ

ตั้งหัวข้อ by POS on 24/08/11, 11:08 am

Code:
#AutoIt3Wrapper_UseX64=n
#RequireAdmin
#include <NomadMemoryPSsix.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

Opt("GUIOnEventMode", 1)




Global $address = "0x00bcbb70" ;ค่าพ้อยเตอร์ที่ต้องนำไปใช้คู่กับค่าออฟเซ็ต
Global $Offset[4]
$Offset[0] = 0 ; ใส่ 0 เป็นค่าเริ่ต้นทุกทครั้ง
$Offset[1] = 0x0    ;ล่างสุด
$Offset[2] = 0x10 ;ถัดจากล่างขึ้นไปหนึ่งชั้น
$Offset[3] = 0x5B18 ;บนสุด

$memopen = _MEMORYOPEN(ProcessExists("xxxxxx.exe")) ;เปลี่ยนชื่อไฟล์เกมส์
If $memopen = 0 Then
   ConsoleWrite('ผิดพลาดไม่มีโปรแกรม =' & $memopen & @CRLF)
   Exit
EndIf



#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PSsix", 264, 102, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")

$Button1 = GUICtrlCreateButton("เขียนค่า", 176, 16, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Label1 = GUICtrlCreateLabel("Label1", 8, 16, 163, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###





While 1
   Sleep(1000)
$value = _MemoryPointerRead($address, $memopen, $Offset)
ConsoleWrite('ค่าที่อ่านได้จากแอดเดรส ' & $value[0] & ' = ' & $value[1] & @CRLF)
GUICtrlSetData($Label1,_WinAPI_IntToFloat($value[1]))
WEnd


Func Button1Click()
_MemoryPointerWrite($address, $memopen, $Offset, "1088421888")
EndFunc

Func Form1Close()
   _MEMORYCLOSE($memopen)
Exit
EndFunc


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

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

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

    เวลาขณะนี้ 28/03/17, 11:19 am