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


ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

Share

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


จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/09/2011

ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by steplovedj on 02/09/11, 09:00 pm

คือ ผมใช้ วิธีตาม ลิงค์ >>> สร้างโปรแกรม กดปุ่มเม้าส์ และคีย์บอร์ดซ้ำๆ ด้วย ScriptWriter ใน Autoit


เข้าเกมเเล้วผมก็กด คีต่าง ๆ เเล้ว ผล มันออกมาเป้นแบบนี้อ่าครับ

#region ---Au3Recorder generated code Start ---
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)

Hotkeyset("{Esc}","stop")


While 1

_WinWaitActivate("ชื่อเกม","")

MouseClick("left",282,209,1)

Send("{END}{PGUP}{RIGHT}{RIGHT}{RIGHT}xxxxxxxxxx{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}{LEFT}ccccccccc{LEFT}{LEFT}{LEFT}jjjjjxxxxxxxxxxxxxxxxxxxxxx{RIGHT}{RIGHT}{RIGHT}ccccccccccccccccccc{RIGHT}{RIGHT}")

WEnd

#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---

#endregion --- Au3Recorder generated code End ---

Func Stop()
Exit
EndFunc

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

คือต้องการให้มันเป็น แบบนี้ ครับ

While 1

1 > Send("{END}") ; กด 1 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
2 > Send("{PGUP}") ; กด 1 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
3 > Send("{RIGHT}") ; กด 3 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
4 > Send("x") ; กด 11 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
5 > Send("{LEFT}") ; กด 5 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
6 > Send("c") ; กด 8 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
7 > Send("{LEFT}") ; กด 3 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
8 > Send("j") ; กด 4 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
9 > Send("x") ; กด 11 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
10 > Send("{RIGHT}") ; กด 3 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
11 > Send("c") ; กด 8 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
12 > Send("{RIGHT}") ; กด 3 ครั่ง เวลาที่ใช้ในการ กดแต่ละครั่ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป

WEnd

และก็ให้เรียง ลำดับ การกด ตาม 1-12 ดัวย ครับ พอ กด ครบ หมดเเล้ว ให้ วน กลับไปทำซ้ำ อีก เรื่อย ๆ
ต้องทำยังไง ครับ ลักษณะ เหมือนโปรแกรม auto keyboard เลยครับ

ยาวหน่อยนะครับ ผม มือใหม่ คับ จะไป ใช้ ในการช่วยเก็บ เวล เก็ม 2D ครับ

flapjack
PSsix Member Super Class III
PSsix Member Super Class III

PSsix Moderator PSsix Master PSsix Game Coder
จำนวนข้อความ : 311
ความนิยม : 74
เข้าร่วมเมื่อ : 05/10/2010

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by flapjack on 03/09/11, 01:15 am

ใช้ Sleep ในการรอ (delay) มีหน่อยของ เวลา ครับ
1000 = 1 วินาที
ส่วนกดกี่ครั้งก็ เพิ่มปีกกาเช่น {RIGHT 4} ครับ
ส่วนวนทำซ้ำ (ใช้ while ก็ได้ครับ)แต่ให้ผู้รู้มาตอบอีกน่ะ ครับ em230

POS
PSsix
PSsix


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

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by POS on 03/09/11, 06:55 am

ใช้ลูป for ซ้อนครอบไปตรงคำสั่งที่ต้องการทำซ้ำครับ ตัวอย่าง (ผมไม่ได้ทำให้ทั้งหมด ด้านท้ายลองหัดทำดูเอง)


Code:

While 1

   Send("{END}") ; กด 1 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
   Sleep(1500)
   Send("{PGUP}") ; กด 1 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
   Sleep(2000)

   For $i = 1 To 3
      Send("{RIGHT}") ; กด 3 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(1500)
   Next

   For $i = 1 To 11
      Send("x") ; กด 11 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(500)
   Next

   For $i = 1 To 5
      Send("{LEFT}") ; กด 5 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(1500)
   Next

   For $i = 1 To 8
      Send("c") ; กด 8 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(500)
   Next

   For $i = 1 To 3
      Send("{LEFT}") ; กด 3 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(1500)
   Next

   For $i = 1 To 4
      Send("j") ; กด 4 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
      Sleep(2000)
   Next
   
   ;;;;ถัดจากนี้ลองเขียนดูเอง
   
   Send("x") ; กด 11 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
   Send("{RIGHT}") ; กด 3 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
   Send("c") ; กด 8 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
   Send("{RIGHT}") ; กด 3 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 1.5 วินาที ก่อนจะไปกด ปุ่มถัดไป

WEnd


แก้ไขล่าสุดโดย POS เมื่อ 04/09/11, 06:52 am, ทั้งหมด 1 ครั้ง


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

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

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

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


จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/09/2011

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by steplovedj on 03/09/11, 09:31 pm

ขอบคุณมากครับ ใช้ได้ ดีมากเลยครับ ^^

เเล้ว ขอ ถามต่อครับ

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

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

POS
PSsix
PSsix


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

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by POS on 04/09/11, 06:57 am

ใช้สคริปต์ตามลิงก์ด้านล่างนี้ครับ ปรับแต่งเวลาแก้ไขที่ตัวแปร $B1 = 1, $B2 = 5

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



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

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

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

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


จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/09/2011

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by steplovedj on 04/09/11, 09:43 am

While 1


Send("{END}") ; กด 1 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(2000)
Send("{PGUP}") ; กด 1 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(2000)

For $i = 1 To 11
Send("x") ; กด 11ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(500)
Next

For $i = 1 To 1
Send("{LEFT 3}") ; กด 1 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(2000)
Next

For $i = 1 To 6
Send("c") ; กด 10ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(650)
Next

For $i = 1 To 11
Send("x") ; กด 11 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(500)
Next

For $i = 1 To 1
Send("{RIGHT 2}") ; กด 2 ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 2 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(2000)
Next

For $i = 1 To 6
Send("c") ; กด 10ครั้ง เวลาที่ใช้ในการ กดแต่ละครั้ง 0.5 วินาที ก่อนจะไปกด ปุ่มถัดไป
Sleep(650)
Next


WEnd


Global $begin = TimerInit(), $B1 = 10, $B2 = 15

AdlibRegister("buff", 1000)

func buff()
$Diff = Int(TimerDiff($begin)/1000)

If mod( $Diff, $B1) = 0 Then
Send("u") ;ใส่ปุ่มบัฟ
EndIf

If mod( $Diff, $B2) = 0 Then
Send("d") ;ใส่ปุ่มบัฟ
EndIf
EndFunc


#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---

#endregion --- Au3Recorder generated code End ---
Func Stop()
Exit
EndFunc

ผมเอา สคริปบัฟ ไปต่อล่าง สคริปเดิม มันไม่ทำงานอ่าครับ ต้อง แก้ ตงไหนอีกครับ

POS
PSsix
PSsix


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

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

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

เอาสคริปต์ที่เขียนเพิ่มไปวางไว้บน While 1 สิครับ เพื่อให้คำสั่งทำงานก่อน ถ้าวางสคริปต์ไว้ด้านล่าง WEnd คำสั่งก็จะไม่ทำงาน เพราะติดลูป




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

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

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

aut
PSsix Powerful Scripting Class
PSsix Powerful Scripting Class

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

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by aut on 05/09/11, 06:54 pm

นายเอาบันทัดนี่ขึ้นไปบนสุดเลยจาเอา 5นาทีก้อเปี่ยนเปน $B1 = 5*60


Global $begin = TimerInit(), $B1 = 10, $B2 = 15

AdlibRegister("buff", 1000)

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


จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/09/2011

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by steplovedj on 06/09/11, 07:04 am

ทำได้เเล้วครับขอบ คุณมากคับ

คำสั่ง ที่กดโดย พับจอได้ ถ้าเกมใช้คำสั่งนี้ไม่ได้ พอจะมีวิธีไหนอีกบ้างครับ

If WinExists($GameHD) Then WinActivate($GameHD)
for $i =1 to 10 ; กดสิบที
ControlSend($GameHD, "", "", "1")
Sleep(1000)
Next

aut
PSsix Powerful Scripting Class
PSsix Powerful Scripting Class

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

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by aut on 06/09/11, 07:54 pm

บางเกมมันก้อใช้ได้บางเกมมันก้อใช้ไม่ได้อะคำสั่งนี้นายลองทำแบบนี้อีกที [You must be registered and logged in to see this link.] ได้ก้อได้เลยไม่ได้ก้อไม่ได้ งงเป่า ชินจัง2

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


จำนวนข้อความ : 17
ความนิยม : 0
เข้าร่วมเมื่อ : 02/09/2011

Re: ถามเกี่ยวกับการใส่ค่า หน่วงเวลาและจำนวนครั่งในการกดปุ่มคีบอด

ตั้งหัวข้อ by steplovedj on 07/09/11, 04:41 pm

ขอบคุณคับ

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