PyAuto GUI (My First RPA)

PyAutoGUI เป็น RPA ตัวแรก ๆ ที่นิยมสำหรับการเริ่มต้น เพราะคำสั่งน้อย และสามารถ ใช้งานได้จริง ซึ่ง PyAuto GUI เป็นไลบรารีใน Python ที่ใช้สำหรับการควบคุมคอมพิวเตอร์แบบอัตโนมัติ โดยสามารถใช้ในการเลียนแบบการคลิกเมาส์ การเคลื่อนที่ของเมาส์ การพิมพ์คีย์บอร์ด และการทำงานอื่นๆ ที่ผู้ใช้งานทำเองด้วยตนเอง โดยเป็นไลบรารีที่เหมาะกับการทำงานอัตโนมัติ เช่น การทดสอบ UI ของโปรแกรม หรือการทำงานซ้ำๆ ที่ต้องการการคลิกหรือการพิมพ์

ความสามารถหลักของ PyAutoGUI

  1. การเคลื่อนที่ของเมาส์และการคลิก: คุณสามารถเคลื่อนเมาส์ไปยังตำแหน่งที่ต้องการและคลิกได้ เช่น การคลิกซ้ายหรือขวา และการดับเบิ้ลคลิก
  2. การพิมพ์ข้อความ: สามารถพิมพ์ข้อความผ่านคีย์บอร์ดได้โดยอัตโนมัติ
  3. การจับภาพหน้าจอ (Screenshot): ใช้ในการถ่ายภาพหน้าจอและเปรียบเทียบภาพเพื่อทำงานตรวจสอบ UI
  4. การตรวจจับภาพบนหน้าจอ: หาองค์ประกอบต่างๆ บนหน้าจอและตอบสนองต่อองค์ประกอบนั้น
  5. การเลียนแบบการกดคีย์บอร์ด: สามารถกดคีย์ต่างๆ บนแป้นพิมพ์ได้

ข้อดีของ PyAutoGUI

  1. การใช้งานง่าย: pyautogui มี API ที่เรียบง่ายและสามารถเรียนรู้ได้รวดเร็ว ผู้ใช้สามารถเริ่มต้นใช้งานได้โดยไม่ต้องมีความรู้ด้านการเขียนโปรแกรมที่ซับซ้อน ด้วยคำสั่งพื้นฐานไม่กี่คำสั่งก็สามารถควบคุมการเคลื่อนไหวของเมาส์ กดปุ่มคีย์บอร์ด และสร้างการทำงานอัตโนมัติง่ายๆ ได้ทันที
  2. ไม่ต้องมีการเข้าถึงระดับระบบ: pyautogui ทำงานบนระดับของการจำลองการใช้งานเมาส์และคีย์บอร์ดผ่านซอฟต์แวร์ ไม่จำเป็นต้องมีการเข้าถึงระดับระบบที่ซับซ้อน ทำให้สามารถใช้ได้อย่างปลอดภัยและง่ายต่อการติดตั้ง
  3. การทำงานร่วมกับแอปพลิเคชันที่ไม่มี API: pyautogui เหมาะสำหรับการทำงานร่วมกับแอปพลิเคชันที่ไม่มี API รองรับ เนื่องจากมันสามารถควบคุมเมาส์และคีย์บอร์ดเพื่อจำลองการใช้งานแอปพลิเคชันนั้นๆ ได้โดยตรง ซึ่งเป็นข้อดีเมื่อคุณต้องการทำงานอัตโนมัติบนแอปพลิเคชันที่ไม่สามารถเข้าถึงผ่านโค้ดได้
  4. ไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม: pyautogui ไม่ต้องการการติดตั้งซอฟต์แวร์เพิ่มเติมหรือการตั้งค่าที่ซับซ้อน ทำให้ผู้ใช้สามารถเริ่มต้นใช้งานได้ทันทีหลังจากติดตั้งไลบรารีผ่าน pip install pyautogui อย่างเดียวก็เพียงพอสำหรับการใช้งาน

ข้อจำกัดของ PyAutoGUI

  1. ขึ้นอยู่กับการตั้งค่าความละเอียดหน้าจอ: เนื่องจาก pyautogui ทำงานบนการระบุตำแหน่งพิกัดหน้าจอ ถ้าหน้าจอถูกเปลี่ยนความละเอียดหรือขนาดของหน้าต่างเปลี่ยนไป หุ่นยนต์จะไม่สามารถหาตำแหน่งที่ถูกต้องในการคลิกหรือพิมพ์ได้ การเปลี่ยนแปลงความละเอียดหน้าจอจึงอาจทำให้สคริปต์ทำงานผิดพลาดได้
  2. ไม่สามารถทำงานใน Background ได้: pyautogui ทำงานโดยการควบคุมหน้าจอที่มองเห็นได้ หากต้องการให้สคริปต์ทำงานเบื้องหลังขณะผู้ใช้ทำงานอย่างอื่นไปด้วยจะเป็นไปไม่ได้ หุ่นยนต์ต้องการความสามารถในการโฟกัสไปที่หน้าต่างที่ควบคุมอยู่ ซึ่งหมายความว่าหากมีการขยับหน้าต่างหรือมีการใช้งานคอมพิวเตอร์ในขณะนั้น อาจทำให้สคริปต์ทำงานผิดพลาด
  3. ความไม่เสถียรในการทำงานร่วมกับหลายหน้าจอ: หากมีการใช้หลายหน้าจอหรือการเชื่อมต่อจอภาพหลายจอพร้อมกัน ตำแหน่งของเมาส์และการทำงานของหุ่นยนต์อาจไม่สอดคล้องกับการตั้งค่าของหน้าจอทุกครั้ง

คุณสามารถติดตั้งไลบรารี PyAutoGUI ได้ด้วยคำสั่งนี้:

pip install pyautogui

PyAutoGUI เหมาะกับงานที่ต้องทำงานซ้ำๆ ที่ต้องการการควบคุม GUI และเป็นเครื่องมือที่มีประโยชน์สำหรับการทำ automation ที่ไม่สามารถทำได้ผ่าน command line interfaces โดยตรง

ฟีเจอร์หลักของ pyautogui

1. การควบคุมเมาส์

คุณสามารถควบคุมเมาส์ได้ด้วยการกำหนดตำแหน่งและการคลิก:

import pyautogui

# ดูตำแหน่งปัจจุบันของเมาส์
x, y = pyautogui.position()
print(f"Mouse is at: ({x}, {y})")


# ย้ายเมาส์ไปยังตำแหน่งที่ระบุ
pyautogui.moveTo(100, 100, duration=1) # ย้ายไปตำแหน่ง (100, 100) ใน 1 วินาที

# คลิกเมาส์

pyautogui.click() # คลิกซ้ายที่ตำแหน่งนั้น
pyautogui.click(200, 200) # คลิกซ้ายที่ตำแหน่ง (200, 200)
pyautogui.rightClick(300, 300) # คลิกขวาที่ตำแหน่ง (300, 300)
pyautogui.doubleClick(400, 400) # ดับเบิลคลิกที่ตำแหน่ง (400, 400)
2. การพิมพ์และการกดปุ่มคีย์บอร์ด

สามารถสั่งให้พิมพ์ข้อความหรือกดปุ่มบนคีย์บอร์ดได้:

import pyautogui

# พิมพ์ข้อความ
pyautogui.write('Hello, PyAutoGUI!', interval=0.1) # พิมพ์ทีละตัวอักษรด้วยระยะเวลาห่าง 0.1 วินาที

# กดปุ่ม
pyautogui.press('enter') # กดปุ่ม Enter
pyautogui.press('tab') # กดปุ่ม Tab

# กดคีย์ลัด (เช่น Ctrl+C)
pyautogui.hotkey('ctrl', 'c')
3. การถ่ายภาพหน้าจอ

คุณสามารถถ่ายภาพหน้าจอหรือส่วนหนึ่งของหน้าจอได้ด้วย pyautogui:

import pyautogui

# ถ่ายภาพหน้าจอทั้งหมดและบันทึกเป็นไฟล์
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')


# ถ่ายภาพหน้าจอส่วนที่เฉพาะเจาะจง
partial_screenshot = pyautogui.screenshot(region=(0, 0, 300, 300)) # ถ่ายภาพขนาด 300x300 เริ่มที่มุมบนซ้าย
partial_screenshot.save('partial_screenshot.png')
4. การตรวจจับภาพบนหน้าจอ

คุณสามารถใช้ฟังก์ชัน locateOnScreen() เพื่อค้นหารูปภาพที่อยู่บนหน้าจอ:

import pyautogui

# ค้นหาตำแหน่งของรูปภาพที่ปรากฏบนหน้าจอ
location = pyautogui.locateOnScreen('button.png')
if location:
print(f"Found image at: {location}")

# คลิกที่ตำแหน่งที่พบรูปภาพ
pyautogui.click(location)
else:
print("Image not found on the screen.")

5. การควบคุมและการเลื่อนหน้าจอ

นอกจากการคลิกเมาส์แล้ว pyautogui ยังสามารถเลื่อนหน้าจอได้:

import pyautogui

# เลื่อนหน้าจอขึ้นหรือลง
pyautogui.scroll(300) # เลื่อนขึ้น 300 หน่วย
pyautogui.scroll(-300) # เลื่อนลง 300 หน่วย
6. ความปลอดภัย

เนื่องจาก pyautogui อาจทำให้เมาส์และคีย์บอร์ดเคลื่อนไหวโดยไม่ตั้งใจ มี “ฟีเจอร์ความปลอดภัย” ที่ช่วยให้คุณสามารถหยุดการทำงานของสคริปต์ได้หากเกิดข้อผิดพลาด:

  • Fail-Safe: หากคุณขยับเมาส์ไปยังมุมบนซ้ายของหน้าจอ (ตำแหน่ง 0, 0) โปรแกรมจะหยุดทำงานอัตโนมัติ
import pyautogui

# เปิดใช้งาน fail-safe
pyautogui.FAILSAFE = True
  • การหน่วงเวลา: เพื่อหลีกเลี่ยงการคลิกหรือการพิมพ์ที่เร็วเกินไป คุณสามารถตั้งค่าการหน่วงเวลาระหว่างคำสั่ง:
import pyautogui

# ตั้งเวลาหน่วงระหว่างคำสั่งทั้งหมด
pyautogui.PAUSE = 1 # หน่วงเวลาทุกครั้งที่มีการส่งคำสั่ง 1 วินาที
สรุป

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

Scroll to Top