แล้วทนทำงานซ้ำๆ ตั้งนาน สร้างคลิกบอททำงานรอบตัว ใน 8 คำสั่ง! เรียนกับ Ultimate Python
เราทำบทเรียนด้วยความตั้งใจใส่เต็ม 300%
สนับสนุนเราได้จากการ subscribe นะครับ :)
Please consider subscribing to Ultimate Python
วันนี้เราจะมาเรียน 8 คำสั่งที่ใช้ควบคุมเมาส์ และ keyboard ใช้สร้างระบบทำงานอัตโนมัติ หรือที่หลายคนเรียกว่า คลิกบอท, Auto Click หรือ RPA เพื่อใช้ทำงานรอบตัวแทนกัน ด้วย Pyautogui
Pyautogui
เป็น library ที่รวบรวมคำสั่งที่ใช้ทำงานกับ application ต่างๆ บนคอมพิวเตอร์ วันนี้เราจะมาเรียนรู้เบื้องต้นกับ pyautogui การควบคุมเมาส์ การสั่งพิมพ์คีย์บอร์ด
ทุกคนสามารถเข้าอ่านวิธีการใช้ pyautogui แบบเต็มๆ ได้จากคู่มือ หรือ Documentation ด้านล่าง
ติดตั้งเครื่องมือ
pyautogui เป็น library ที่ต้องติดตั้งก่อนนำมาใช้งานด้วยคำสั่ง pip install ในครั้งแรกที่ทำงานด้วย
In [1]:
!pip install pyautogui
นำเข้าเครื่องมือ
เช่นเดียวกับ library อื่น pyautogui ต้องนำมาใช้งานด้วย import ก่อนนำมาใช้งาน
In [2]:
import pyautogui
การทำงานกับเมาส์
สามารถทำได้โดยการระบุ x, y ตามด้วยคำสั่งต่างๆ ทำให้เกิดการกระทำกับเมาส์ตามต้องการ เช่น การคลิก ลาก double-click หรืออื่นๆ
• ตำแหน่งการทำงาน
จะอาศัยการระบุตำแหน่งที่ต้องการเป็นพิกัด x,y ซึ่งเราสามารถตรวจสอบพิกัดใดๆ ที่ตำแหน่งเมาส์ปัจจุบันด้วยคำสั่ง .position() โดยเราจะได้ผลลัพธ์เป็น object ประเภท point ที่ประกอบไปด้วยตำแหน่ง x, y
In [4]:
result = pyautogui.position()
In [5]:
result
Out[5]:
Point(x=3221, y=420)
การระบุตำแหน่งเมาส์ในขณะที่รันคำสั่ง
unpack
เราสามารถนำตำแหน่ง x y ตัวนี้ไปใช้งานได้โดยการ unpack หรือการนำข้อมูลที่ประกอบไปด้วยหลายข้อมูลย่อย ไปยังตัวแปรที่เก็บแต่ละข้อมูลไว้ เราเรียกเทคนิคนี้ว่า unpacking
In [6]:
x, y = result
• คลิกเมาส์
ใช้คำสั่ง .click() ร่วมกับตำแหน่งพิกัดที่ต้องการทำงานด้วย สามารถระบุเป็น object ประเภท match หรือระบุ x, y ด้วย parameter แยกได้เช่นเดียวกัน
In [15]:
result = pyautogui.position()
ระบุตำแหน่งด้วย point
สามารถใช้คำสั่งสร้าง point ซึ่งสามารถใช้เป็นตำแหน่งที่ต้องการได้เลย
In [11]:
result
Out[11]:
Point(x=2576, y=109)
In [10]:
pyautogui.click(result)
ระบุตำแหน่งด้วย argument
สามารถใช้การกำหนดพิกัด x ด้วย parameter x และ y ด้วย parameter y
In [12]:
pyautogui.click(x=2576,y=109)
สั่งคลิกใน point/ ตำแหน่งที่กำหนดทันที
• double-click
ใช้คำสั่ง .doubleClick() ร่วมกับตำแหน่งพิกัดที่ต้องการทำงานด้วย สามารถระบุเป็น object ประเภท match หรือระบุ x, y ด้วย parameter แยกได้เช่นเดียวกัน
In [13]:
position = pyautogui.position()
In [14]:
pyautogui.doubleClick(position)
สั่ง Double click ในตำแหน่งที่กำหนด
• เลื่อนเมาส์
ใช้คำสั่ง .moveTo() และกำหนดตำแหน่งพิกัดที่ต้องการ ตามตัวอย่างด้านล่าง
In [16]:
file_position = pyautogui.position()
In [18]:
pyautogui.moveTo(file_position,duration=1)
สั่งคำสั่งเลื่อนเมาส์
• ลากเมาส์
ใช้คำสั่ง .dragTo() ซึ่งมี parameter duration ที่สามารถกำหนดเวลาที่ใช้ในการลากได้เช่นหากกำหนดให้การลากกินเวลา 1 วินาทีสามารถกำหนดได้ด้วย parameter duration=1 และกำหนดตำแหน่งพิกัดที่ต้องการ ตามตัวอย่างด้านล่าง
In [19]:
destination = pyautogui.position()
In [21]:
pyautogui.dragTo(destination,duration=1)
สั่งคำสั่งลากเมาส์
การทำงานกับคียบอร์ด
สามารถทำได้หลายอย่างไม่ว่าจะเป็นการพิพม์ข้อมูล การกดปุ่มที่ต้องการ ซึ่งวันนี้เรามาเรียนเทคนิคเบื้องต้นกัน
• พิมพ์คีย์บอร์ด
สามารถใช้คำสั่ง .write() เพื่อรับ string ที่ต้องการพิมพ์ลงไปได้เลย หากต้องการพิมพ์ข้อความที่มีการจัดการหน้ากระดาษเช่นการขึ้นหน้าใหม่สามารถใช้สัญลักษณ์พิเศษต่างๆ เช่น \n \t เพื่อทำการจัดการหน้าการแสดงผลของตัวอักษรได้ด้วย
ในตัวอย่างเราจะใช้คำสั่ง time.sleep() จาก library time เพื่อดีเลย์คำสั่งโดย time.sleep() เป็นคำสั่งให้หยุดรอจนเวลาหมดโดยสามารถกำหนดเวลารอเเป็นวินาทีโดยใส่ integer ลงไปเป็น parameter ได้
In [23]:
import time
In [25]:
time.sleep(2)
pyautogui.write('hello world')
คำสั่งพิมพ์คีย์บอร์ด
• hot key
คือ การกด key ค้างและกดคีย์อื่นต่อเป็นลำดับเช่นการกด ctrl ข้างแล้วกด tab เพื่อเปลี่ยนหน้าต่างการใช้งานบน browser สามารถเขียนได้ในลักษณะดังต่อไปนี้
In [26]:
pyautogui.hotkey('ctrl','tab')
คำสั่งกด hotkey
Image Recognition และการหาตำแหน่งภาพ
pyautogui เป็น library ที่มีเครื่องมือที่ใช้ทำความเข้าใจรูปภาพ เพื่อใช้ระบุตำแหน่งของภาพที่ประกฎบนหน้าจอด้วยเทคโนโลยี Image Recognition ซึ่งเครื่องมือนี้ทำความเข้าใจกับรูปแบบอัตโนมัติ อาจมีถูกหรือผิดบ้าง
ซึ่งเราจะใช้รูปนี้ word logo.png หาตำแหน่ง icon
In [28]:
position = pyautogui.locateOnScreen('word logo.png')
In [30]:
pyautogui.moveTo(position)
pyautogui.doubleClick(position)
การใช้ภาพหา ตำแหน่ง
ถ้าชอบบทเรียนนี้ การกด subscribe และชวนเพื่อนมาเรียน จะช่วยเราได้มากอย่างที่คุณคิดไม่ถึงเลย :)
เรียนเรียน Python จาก 0 ฉบับวัยทำงานยุคใหม่
เริ่มไว ใช้ได้ทันที พร้อมการดูแลจากผู้สอนโดยตรง และกลุ่มแลกเปลี่ยนความรู้
เรียนรู้เกี่ยวกับคอร์สเรียนเพิ่มเติม https://ultimatepython.teachable.com/p/python-automation
Comments