Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Mouse และ Keyboard Automation ใน Python (pyautogui)

ใช้โมดูล pyautogui สำหรับควบคุม Mouse และ Keyboard อัตโนมัติ Cross-platform GUI Automation

ติดตั้ง

pip install pyautogui

ควบคุม Mouse

import pyautogui

# ขนาดหน้าจอ
width, height = pyautogui.size()
print(f"Screen: {width}x{height}")

# ตำแหน่งปัจจุบันของเมาส์
print(pyautogui.position())

# ย้ายเมาส์ไปตำแหน่งเฉพาะ (Absolute)
pyautogui.moveTo(100, 100, duration=1.0)

# ย้ายเมาส์แบบ Relative
pyautogui.moveRel(50, 0, duration=0.5)  # ขวา 50px
pyautogui.moveRel(0, -30, duration=0.5) # ขึ้น 30px

# คลิก
pyautogui.click(200, 200)           # คลิกที่พิกัด
pyautogui.click()                   # คลิกตำแหน่งปัจจุบัน
pyautogui.doubleClick()             # Double Click
pyautogui.rightClick()              # Right Click
pyautogui.middleClick()             # Middle Click

# Drag
pyautogui.dragTo(300, 300, duration=1)
pyautogui.dragRel(100, 0, duration=1)

# Scroll
pyautogui.scroll(10)   # Scroll ขึ้น
pyautogui.scroll(-10)  # Scroll ลง

ควบคุม Keyboard

typewrite() - พิมพ์ข้อความ

pyautogui.typewrite('Hello, World!')           # พิมพ์ทันที
pyautogui.typewrite('Hello, World!', interval=0.1)  # หน่วง 0.1 วินาที/ตัวอักษร

press(), keyDown(), keyUp() - กดปุ่ม

pyautogui.press('enter')        # กด Enter ครั้งเดียว
pyautogui.press(['left', 'left', 'left'])  # กดซ้าย 3 ครั้ง

pyautogui.keyDown('ctrl')       # กดค้าง Ctrl
pyautogui.keyDown('c')          # กดค้าง C
pyautogui.keyUp('c')            # ปล่อย C
pyautogui.keyUp('ctrl')         # ปล่อย Ctrl

hotkey() - Keyboard Shortcuts

pyautogui.hotkey('ctrl', 'c')      # Copy
pyautogui.hotkey('ctrl', 'v')      # Paste
pyautogui.hotkey('ctrl', 'shift', 'esc')  # Task Manager (Windows)
pyautogui.hotkey('alt', 'tab')     # Switch Window

KEYBOARD_KEYS

รายการ Key ที่รองรับ: pyautogui.KEYBOARD_KEYS รวมถึง enter, esc, tab, shift, ctrl, alt, f1-f24, left, right, up, down, home, end, pageup, pagedown, insert, delete, backspace, space, caps lock, numlock, printscreen, scrolllock, pause, win, command, option และตัวอักษร/ตัวเลข/สัญลักษณ์ทั่วไป

ตัวอย่างรวม: เปิด Notepad และพิมพ์ข้อความ

import pyautogui
import time

# เปิด Run Dialog (Win+R)
pyautogui.hotkey('win', 'r')
time.sleep(0.5)

# พิมพ์ notepad และ Enter
pyautogui.typewrite('notepad')
pyautogui.press('enter')
time.sleep(1)

# พิมพ์ข้อความใน Notepad
pyautogui.typewrite('Hello from PyAutoGUI!', interval=0.05)

ความปลอดภัย

  • ย้ายเมาส์ไปมุมซ้ายบน (0,0) จะ Trigger pyautogui.FailSafeException หยุดโปรแกรมทันที (Fail-safe Feature)
  • ตั้งค่า: pyautogui.FAILSAFE = False เพื่อปิด (ไม่แนะนำ)
  • ตั้งค่า Pause ระหว่างคำสั่ง: pyautogui.PAUSE = 0.1