May 14, 2009
Thursday, May 14, 2009

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

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

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

     ดังนั้นการบันทึกการกระทำด้วยโปรแกรมนี้จึงเหมาะสำหรับงานเร่งด่วน หรือแบบใช้ครั้งเดียวทิ้ง ถ้าหากจะเอาแบบแม่นยำโดยไม่อิงจากตำแหน่งหน้าจอ คุณต้องเขียนคำสั่งเจาะจงไปเลย อย่าง ถ้ากำหนดให้คลิกปุ่ม ตกลง ในหน้าจอโปรแกรม IE ก็ต้องเขียนคำสั่งที่ระบุชื่อปุ่มไปเลย วิธีการดังกล่าวจะได้ผลที่แม่นยำ แม้หน้าจอจะไม่ได้อยู่ตำแหน่งเดิมหรือพับหน้าจอลงก็คลิกได้ ซึ่งต้องใช้เวลาในการศึกษาวิธีทำอยู่พอสมควร หากสนใจลองคลิกไปดูที่เมนู AutoIt ในลิงก์ด้านขวาของบล็อกนี้
     เรามาว่าเรื่องโปรแกรม ScriptWriter กันต่อ ก่อนอื่นตรวจเช็คดูก่อนว่าเครื่องของคุณมีโปรแกรมนี้หรือยัง ถ้าหากคุณติดตั้ง Autoit ในเครื่องเรียบร้อยแล้ว ลองเข้าไปที่โฟลเดอร์ติดตั้งโปรแกรม และเข้าไปในโฟลเดอร์ย่อย SciTE\ScriptWriter ตัวโปรแกรมจะชื่อ AU3Record.exe ถ้าตำแหน่งนี้หาไม่เจอ ลองคลิกไปที่ตำแหน่งดังนี้

วินโดวส์ 32 บิต หาโปรแกรมที่ตำแหน่ง

C:\Program Files\AutoIt3\Extras\Au3Record



วินโดวส์ 64 บิต หาโปรแกรมที่ตำแหน่ง

C:\Program Files (x86)\AutoIt3\Extras\Au3Record

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

คลิกดาวน์โหลด SCiTE

จากนั้นเปิดโปรแกรม ScriptWriter แล้วทำตามขั้นตอนดังรูปด้านล่างนี้

1. คลิกปุ่ม Browse เพื่อกำหนดโปรแกรมที่จะบันทึกการคลิกเม้าส์ และกดปุ่มคีย์บอร์ด (ขั้นตอนนี้หากไม่รู้ชื่อโปรแกรมก็ผ่านไปได้ครับ)

2. เปิดโปรแกรมที่จะบันทึกขึ้นมาเตรียมไว้(ตามตัวอย่างนี้คือโปรแกรม IE) แล้วคลิกปุ่ม Click to Record






จะมีรูปปุ่มดังกล่าวลอยขึ้นมาที่มุมซ้ายบนของหน้าจอ ปุ่มนี้เอาไว้คลิกเพื่อปิดการบันทึก




3. ทำการคลิกเม้าส์หรือกดปุ่มคีย์บอร์ดบนหน้าต่างโปรแกรมที่คุณจะบันทึก ตามตัวอย่างนี้ผมบันทึกการทำงานในหน้าต่าง IE เมื่อทำเสร็จก็กดปุ่ม Click to Stop ที่มุมซ้ายบนของจอ เพื่อหยุดการบันทึก โค้ดรหัสคำสั่งของโปรแกรม Autoit ก็จะปรากฏขึ้นมาในหน้าต่างโปรแกรม ตรงนี้คลิกปุ่ม Save แล้วคลิกปุ่ม Exit เพื่อออกจากโปรแกรมได้เลยครับ


4. เปิดไฟล์ au3 ที่บันทึกขั้นในขั้นตอนที่ 3 พิมพ์คำสั่งด้านล่างนี้แทรกลงไป

;สำหรับใช้สร้างปุ่มกด ESC แล้วหยุดการทำงาน
Hotkeyset("{Esc}","stop")

;คำสั่งฟังก์ชันสำหรับการปิดโปรแกรม
Func Stop()
Exit
EndFunc

5. พิมพ์คำสั่งWhile 1 และ WEnd ครอบชุดคำสั่งที่ต้องการให้ทำซ้ำๆ วนไปเรื่อยๆ (ถ้าไม่ใช้ชุดคำสั่งนี้ โปรแกรมจะทำซ้ำครั้งเดียวแล้วหยุด)




     รายละเอียดอื่นๆ เช่น การคอมไพล์สคริปต์เป็นไฟล์ .exe ขอให้คลิกเข้าไปอ่านที่บทความนี้ตามลิงก์ด้านล่างนี้ ผมได้อธิบายไว้แล้วครับ (อยู่ตอนท้ายๆ)

http://pssix.blogspot.com/2008/09/autoit-2.html


###จบแล้วครับ###

6 comments:

  1. แล้วถ้าเราต้องการที่จะทำให้มีปุ่มกดเพื่อนเปิดและปุ่มปิดละครับ

    จะต้องทำอย่างไรหรอครับ

    เช่นกด F1 ให้กด q ไปเรื่อยๆ

    กด F2 เพื่อให้หยุดการกระทำดังกล่าวชั่วคราว

    ReplyDelete
  2. ใช้ Hotkey ทำให้หยุดชั่วคราวได้ครับ

    http://pssix.blogspot.com/2009/09/autoit-hotkey-1.html

    ประมาณสามตอนจบ หยุดชั่วคราวคงเขียนไว้ในตอนที่สาม

    ReplyDelete
  3. สร้างปุ่มกดค้าง ไช้คำสั่งอะไรครับ

    ReplyDelete
  4. โหลดไม่ได้แล้วครับช่วยดูให้หน่อยนะครับ

    ReplyDelete
  5. ถ้าโหลดโปรแกรมไม่ได้ เข้าไปดูที่ฟอรั่ม AutoIt (ลิงก์ด้านบน) จะมีลิงก์โปรแกรมเวอร์ชั่นล่าสุดแจ้งไว้ให้ครับ

    ReplyDelete
  6. พอดีมันกดค้างให้ไม่ได้อ่ะครับ
    เพราะโปรแกรมนึงถ้าไม่กดค้างก็ไม่สามารถที่จะใช้งานได้ครับ
    มันทำได้แค่กดรัวๆเท่านั้นเองครับ
    อยากทราบว่าพอมีวิธีที่ทำให้มันกดค้างได้หรือป่าวครับ

    ReplyDelete

    ส่วนนี้สำหรับแสดงความคิดเห็นทั่วไป สอบถามปัญหาตั้งถามได้ที่ฟอรั่ม


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