วันเสาร์ที่ 14 ธันวาคม พ.ศ. 2556

Sikuli ทางเลือกของ AutoIT และ Auto Hotkey ในแบบของ Python


สำหรับสคริปต์สั่งให้เครื่องทำงานอัตโนมัติต้องยอมรับเลยว่า AutoIt กับ Auto Hotkey นั้นทำงานในหน้าที่ที่ถูกออกแบบมาได้ดีมาก ใช้งานได้สะดวกมาก ตัวภาษาที่ใช้สั่งงานก็ไม่ได้ยากมากไปนัก จะหาสคริปต์ในอินเตอร์เน็ตก็มีให้ดูเป้นตัวอย่างเยอะ แต่ว่าช่วงนี้กำลังเน้นเรื่องการเรียนรู้ Python จึงขอนำเสนอตัวโปรแกรมที่ใช้ภาษา Python เป็นภาษาสคริปต์ ฟังก์ชั่นการทำงานก็ทำได้ไม่น้อยหน้าโปรแกรมที่ยกตัวอย่างไป แต่จะแตกต่างที่วิธีคิด การออกแบบโปรแกรมที่แตกต่างกันไปคนละแนวเลยทีเดียวแต่ผลลัพธืการทำงานได้เหมือนกัน โปรแกรมที่ว่าคือ Sikuli

ความแตกต่างของ Sikuli กับโปรแกรมอื่นที่ชัดเจนที่สุดคือการทำงานหลักจะใช้วิธีการที่โปรแกรมตรวจจับภาพจากหน้าจอแล้วจึงสั่งการทำงานไปยังเครือ่งโดยผ่านการกดคีย์บอร์ดหรือกดเมาส์หรือจะใช้สคริปต์ภาษา Pyhon สั่งให้เครื่องทำงานอื่น ๆ ได้อีกมากมายเหมือนเรานั่งอยู่หน้าจอ ตัวโปรแกรมเริ่มพัฒนาจาก User Interface Design Group ที่ MIT ส่วนในปัจจุบันดูแลโดย Raimund Hocke หรือ Raiman

ข้อดีอีกอย่างของ Sikuli ก็คือทำงานได้หลายแพลตฟอร์มเนื่องจากทำงานบน Java ส่วนสคริปต์ที่ใช้ก็จะเป้น Python แต่เป็นการใช้ Jython (Python ที่ทำงานบน Java) ส่วนประกอบการทำงานก็จะมี 2 ส่วนด้วยกันคือส่วนที่ใช้รันสคริปต์กับส่วนที่ใช้พัฒนาสคริปต์ เป็นเครื่องมือแยกออกมาที่เรียกว่า SikuliX-IDE หรือจะใช้เครื่องมือพัฒนาที่คุ้นเคยตัวอื่นเช่น Eclipse หรือ Netbeans ก็ได้ ลองมาดูตัวอย่างกัน

การใช้ Sikuli เพื่อดาวน์โหลดไฟล์แบบคลิ๊กลิ้งก์อัตโนมัติ
(บางคนอาจจะคิดว่าใช้ iMacros ก็ได้แต่ตัวอย่างนี้ใช้ Sikuli)

ตัวอย่างนี้เป็นการเล่นเกมชู้ตบาสของกูเกิล
การใช้ควบคุมการทำงานของ Photoshop

หรือแม้แต่ใช้เล่นเกมจับคู่

ก็นับเป้นโปรแกรมที่น่าสนใจนำมาประยุกต์ใช้งานอัตโนมัติต่าง ๆ เป้นทางเลือกนอกจาก AutoIt, Auto Hotkey หรือแม้แต่ iMacros ยิ่งสำหรับการเขียน Python คงมีประโยชน์เพิ่มประสบการณ์การเขียนได้บ้าง