top of page

สร้างบอททำงานแทน ใน 8 คำสั่ง! พร้อม Image Recognition

Updated: Nov 19, 2021

แล้วทนทำงานซ้ำๆ ตั้งนาน สร้างคลิกบอททำงานรอบตัว ใน 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




18,617 views0 comments
bottom of page