مقدمة
يمكن أتمتة العديد من المهام على الكمبيوتر: النقر بالماوس، إدخال النص، البحث عن زر على الشاشة، نقل النوافذ. عندما يتعلق الأمر بأتمتة التفاعل مع واجهة المستخدم الرسومية، فإن الخيار الأول في بايثون هو مكتبة PyAutoGUI.
هي مكتبة متعددة المنصات تتيح لك التحكم برمجيًا في الماوس ولوحة المفاتيح، والتقاط لقطات الشاشة، والعثور على الصور على الشاشة، وتنفيذ نصوص الأتمتة. تُستخدم على نطاق واسع في اختبار واجهات المستخدم، وكتابة البوتات، وتبسيط المهام الروتينية، وحتى التحكم في الألعاب.
في هذه المقالة، سنستعرض الأساس النظري، والبنية، والطرق الرئيسية، وحالات الاستخدام العملية، والأخطاء الشائعة، والتكامل مع الأدوات الأخرى.
ما هي PyAutoGUI
PyAutoGUI هي مكتبة بايثون لأتمتة واجهة المستخدم الرسومية (GUI)، أنشأها Al Sweigart. توفر واجهة برمجية بسيطة لتنفيذ الإجراءات التي يقوم بها المستخدم عادةً: تحريك الماوس، النقر، كتابة النص، الضغط على المفاتيح، والتقاط لقطات الشاشة.
تعمل المكتبة على مستوى نظام التشغيل، محاكيةً الإجراءات الحقيقية للمستخدم. وهذا يعني أنها تستطيع التفاعل مع أي تطبيق يقبل الإدخال القياسي من الماوس ولوحة المفاتيح.
الإمكانيات الرئيسية لـ PyAutoGUI
التحكم في الماوس
- تحريك المؤشر حسب الإحداثيات
- تنفيذ أنواع مختلفة من النقرات
- عمليات السحب والإفلات (drag and drop)
- تمرير المحتوى
العمل مع لوحة المفاتيح
- إدخال النص في الحقول النشطة
- الضغط على مفاتيح فردية
- تنفيذ اختصارات لوحة المفاتيح
- دعم المفاتيح الخاصة
العمل مع الشاشة
- التقاط لقطات شاشة كاملة أو جزئية
- الحصول على معلومات دقة الشاشة
- تحليل ألوان البكسل
- البحث عن الصور على الشاشة
الأمان والتحكم
- نظام أمان مدمج (fail-safe)
- ضبط فترات التوقف بين الإجراءات
- معالجة الاستثناءات
التثبيت والإعداد
التثبيت الأساسي
pip install pyautogui
التبعيات الإضافية
للحصول على وظائف متقدمة، يُوصى بتثبيت:
pip install pillow # للعمل مع الصور
pip install opencv-python # للبحث الدقيق عن الصور
pip install pygetwindow # للتحكم في النوافذ
pip install pymsgbox # لمربعات الحوار
pip install pyperclip # للعمل مع الحافظة
الاستيراد في الكود
import pyautogui
import time
الهيكل والإمكانيات الأساسية
تتفاعل PyAutoGUI مع نظام التشغيل مباشرة، محاكيةً الإجراءات الحقيقية للمستخدم: النقرات، الحركات، الضغط على المفاتيح، التقاط الشاشة، والبحث عن القوالب على الشاشة.
الوحدات الوظيفية الرئيسية
- التحكم في الماوس — تحريك المؤشر، النقرات، التمرير
- العمل مع لوحة المفاتيح — إدخال النص، الضغط على المفاتيح
- العمل مع الشاشة ولقطات الشاشة — التقاط الشاشة، تحليل البكسل
- البحث عن الصور والقوالب — البحث التلقائي عن عناصر الواجهة
- مربعات الحوار — التفاعل مع المستخدم
- أنظمة الأمان — الحماية من التنفيذ العرضي
التحكم في الماوس
الحصول على معلومات الماوس
# الحصول على الموضع الحالي للمؤشر
x, y = pyautogui.position()
print(f"المؤشر في: ({x}, {y})")
# الحصول على حجم الشاشة
width, height = pyautogui.size()
print(f"دقة الشاشة: {width}x{height}")
# التحقق من وجود المؤشر على الشاشة
if pyau