کتابخانه pyautogui در پایتون!

زمان مطالعه: 11 دقیقه ویرایش: 1404/04/05

سلام رفیق! تو این مقاله می‌خوایم با هم PyAutoGUI رو بررسی کنیم؛ یه کتابخونه خیلی باحال پایتون برای کنترل صفحه، ماوس و کیبورد. با یادگیری این ابزار، می‌تونی کلی کارهای تکراری رو خودکار کنی، ربات بسازی یا حتی تست نرم‌افزار انجام بدی. آماده‌ای همه چی رو کامل یاد بگیری؟ 😊


PyAutoGUI چیه و چه کارایی داره؟ 🤖

PyAutoGUI یه کتابخونه کراس‌پلتفرمه واسه پایتون که بهت اجازه می‌ده با کد، ماوس و کیبورد رو کنترل کنی. یعنی می‌تونی حرکات ماوس رو شبیه‌سازی کنی، کلیک کنی، تایپ کنی، اسکرین‌شات بگیری و حتی صفحه رو بگردی ببینی کدوم بخش‌ها چیه. خیلی خوبه واسه اتومات کردن کارهای تکراری، ساخت ربات یا تست برنامه‌ها.

pyautogui python مسترپای mrpy


چجوری PyAutoGUI رو نصب کنیم؟ 🛠️

برای شروع، اول باید PyAutoGUI و کتابخونه‌های مورد نیازش رو نصب کنی. توی ترمینال یا CMD این دستور رو بزن:

pip install pyautogui

برای اینکه همه‌چیز بهتر کار کنه، مخصوصاً روی ویندوز و مک، این بسته‌ها رو هم نصب کن:

pip install pillow pyobjc-core pyobjc

اگه لینوکس داری، ممکنه لازم باشه ابزارهای X11 رو نصب کنی، ولی اون کار سختی نیست.


حرکت دادن ماوس و کلیک کردن 🖱️

اگه بخوای ماوس رو ببری یه نقطه مشخص، اینطوری می‌شه:

import pyautogui

pyautogui.moveTo(500, 300, duration=1)

این کد ماوس رو آروم می‌بره به مختصات (۵۰۰، ۳۰۰) تو یک ثانیه. اگه بخوای نسبت به موقعیت فعلی حرکت بدی:

pyautogui.moveRel(100, -50, duration=0.5)

برای کلیک چپ روی یه موقعیت خاص:

pyautogui.click(600, 400)

کلیک راست و وسط هم داریم:

pyautogui.rightClick()
pyautogui.middleClick()

دابل کلیک یا چند کلیک پشت سر هم هم آسونه:

pyautogui.doubleClick()
pyautogui.click(clicks=3, interval=0.25)

تایپ کردن خودکار با کیبورد ⌨️

می‌تونی متن دلخواه رو با فاصله بین حروف تایپ کنی:

pyautogui.write("Hello, PyAutoGUI!", interval=0.1)

کلیدهای خاص مثل Enter یا ترکیب کلیدها مثل Ctrl+C هم می‌تونی بزنی:

pyautogui.press('enter')
pyautogui.hotkey('ctrl', 'c')

گرفتن اسکرین‌شات و تشخیص رنگ 🖼️

می‌تونی از صفحه عکس بگیری و ذخیره کنی:

screenshot = pyautogui.screenshot()
screenshot.save("screen.png")

برای فهمیدن رنگ یه پیکسل مشخص:

color = pyautogui.screenshot().getpixel((100, 200))
print(color)

پیدا کردن تصویر روی صفحه و کلیک خودکار 🔍

می‌تونی یه تصویر مشخص رو تو صفحه پیدا کنی و روش کلیک کنی:

location = pyautogui.locateOnScreen("button.png")
if location:
    pyautogui.click(location)

یا اینکه دقیق‌تر روی مرکز تصویر کلیک کنی:

center = pyautogui.locateCenterOnScreen("button.png")
if center:
    pyautogui.click(center)

یه نکته مهم ⛔

PyAutoGUI یه قابلیت داره که اگه ماوس رو سریع ببری گوشه بالا سمت چپ صفحه، اجرای اسکریپت قطع می‌شه. این خیلی کمک می‌کنه اگه خواستی سریع دستورات رو متوقف کنی.

pyautogui.FAILSAFE = True

تنظیم تاخیر بین دستورات ⏳

برای اینکه اسکریپت طبیعی‌تر اجرا بشه و فشار سیستم کمتر باشه، می‌تونی یه وقفه بذاری بین دستورات:

pyautogui.PAUSE = 0.5

اسکرول کردن صفحه 📜

صفحه رو می‌تونی به بالا یا پایین اسکرول کنی:

pyautogui.scroll(-500)  # scroll down
pyautogui.scroll(500)   # scroll up

کنترل پنجره‌ها با pygetwindow 🪟

برای مدیریت پنجره‌ها می‌تونی از کتابخونه pygetwindow استفاده کنی. اول نصبش کن:

pip install pygetwindow

بعد مثلاً اینجوری یه پنجره نوت‌پد رو فعال می‌کنی:

import pygetwindow as gw

window = gw.getWindowsWithTitle('Notepad')[0]
window.activate()

چند نکته باحال و حرفه‌ای 💡

  • خطاها رو با try-except کنترل کن.
  • برای پروژه‌های بزرگ از حلقه و زمان‌بندی استفاده کن.
  • با pyautogui.size() اندازه صفحه رو بگیر.
  • کیفیت تصویر برای پیدا کردن دقیق محل خیلی مهمه.
  • با onScreen() چک کن مختصات داخل صفحه هست یا نه.
  • حتما pyautogui.FAILSAFE رو فعال بذار.

جمع‌بندی و حرف آخر 🌟

خلاصه اینکه PyAutoGUI یه ابزار خیلی قویه که باهاش می‌تونی کلی کار جالب و کاربردی انجام بدی، کارهای خسته‌کننده رو خودکار کنی و ربات بسازی. حالا که همه چیز رو یاد گرفتی، وقتشه که خودت دست به کار شی و پروژه‌های باحال درست کنی.

موفق باشی و همیشه خلاق! 🍀



2
user نوشته شده توسط علی سلیمی از طراحان مسترپای


دیدگاه


برای ثبت دیدگاه، وارد شوید