توضح هذه المقالة كيفية أتمتة حركات الماوس ولوحة المفاتيح باستخدام com.pyautogui الوحدة النمطية في بيثون. لم يتم تحميل هذه الوحدة مسبقًا ببايثون. لذلك لتثبيته قم بتشغيل الأمر التالي:
نماذج التعلم الآلي
pip3 install pyautogui
التحكم في حركات الماوس باستخدام وحدة pyautogui
تقوم Python بتتبع الماوس والتحكم فيه باستخدام نظام الإحداثيات الخاص بالشاشة. لنفترض أن دقة شاشتك هي 1920X1080، فإن نظام إحداثيات شاشتك يبدو كما يلي:
Python
import pyautogui print(pyautogui.size())
احفظ هذا الملف بامتداد .py ثم قم بتشغيل الملف.
يستخدم رمز python وظيفة size() لإخراج دقة الشاشة بتنسيق x y:
الإخراج:
(1920 1080)
ملاحظة: قد لا تعمل بعض الرموز الواردة في هذه المقالة على geeksforgeeks IDE نظرًا لأن geeksforgeeks IDE لا يحتوي على الوحدات المطلوبة لتشغيل هذه الرموز. ولكن يمكن تشغيل هذه الرموز بسهولة محليًا على جهاز الكمبيوتر الخاص بك عن طريق تثبيت python واتباع الإرشادات الواردة في المقالة.
Python
import pyautogui pyautogui.moveTo(100 100 duration = 1)
يستخدم هذا الرمز الدالة moveTo() التي تأخذ إحداثيات x وy ووسيطة مدة اختيارية. تقوم هذه الوظيفة بتحريك مؤشر الماوس من موقعه الحالي إلى الإحداثي x y وتستغرق وقتًا محددًا بواسطة وسيطة المدة للقيام بذلك. قم بحفظ وتشغيل برنامج python النصي هذا لرؤية مؤشر الماوس الخاص بك يتحرك بطريقة سحرية من موقعه الحالي إلى الإحداثيات (100 100) ويستغرق ثانية واحدة في هذه العملية.
Python
import pyautogui pyautogui.moveRel(0 50 duration = 1)
سيحرك هذا الرمز مؤشر الماوس عند (0 50) بالنسبة إلى موضعه الأصلي. على سبيل المثال، إذا كان موضع الماوس قبل تشغيل الكود (1000 1000) فإن هذا الكود سيحرك المؤشر إلى الإحداثيات (1000 1050) في مدة ثانية واحدة.
Python
import pyautogui print(pyautogui.position())
الإخراج: الإحداثيات التي كان يتواجد بها الماوس الخاص بك وقت تنفيذ البرنامج.
Python
import pyautogui pyautogui.click(100 100)
يقوم هذا الرمز بإجراء نقرة نموذجية بالماوس على الموقع (100 100).
لدينا وظيفتان مرتبطتان بعملية السحب بالماوس السحب إلى و السحبRel . إنها تؤدي وظائف مماثلة لوظائف moveTo وmoveRel باستثناء أنها تضغط على زر الماوس الأيسر أثناء التحرك وبالتالي تبدأ عملية السحب.
يمكن استخدام هذه الوظيفة في أماكن مختلفة مثل تحريك مربع حوار أو رسم شيء ما تلقائيًا باستخدام أداة القلم الرصاص في MS Paint. لرسم مربع بالطلاء:
import time # a module which has functions related to time. # It can be installed using cmd command: # pip install time in the same way as pyautogui. import pyautogui time.sleep(10) # makes program execution pause for 10 sec pyautogui.moveTo(1000 1000 duration = 1) # moves mouse to 1000 1000. pyautogui.dragRel(100 0 duration = 1) # drags mouse 100 0 relative to its previous position # thus dragging it to 1100 1000 pyautogui.dragRel(0 100 duration = 1) pyautogui.dragRel(-100 0 duration = 1) pyautogui.dragRel(0 -100 duration = 1)
قبل تشغيل الكود، افتح MS Paint في الخلفية باستخدام أداة القلم الرصاص المحددة. الآن قم بتشغيل الكود وقم بالتبديل بسرعة إلى MS Paint قبل 10 ثوانٍ (نظرًا لأننا أعطينا وقتًا مؤقتًا لمدة 10 ثوانٍ باستخدام وظيفة السكون () قبل تشغيل البرنامج).
بعد 10 ثوانٍ، ستشاهد مربعًا يتم رسمه باستخدام طلاء MS بحيث تكون حافته العلوية اليسرى 1000 1000 وطول الحافة 100 بكسل.
سلسلة إلحاق جافا
Python
import pyautogui pyautogui.scroll(200)
يقوم هذا الرمز بتمرير الشاشة النشطة حتى 200 بكسل.
إدراج الخلية في
Python
import pyautogui pyautogui.click(100 100) pyautogui.typewrite('hello Geeks !')
لنفترض أن هناك حقل نصي موجود عند الإحداثيات 100 100 على الشاشة، فسيقوم هذا الرمز بالنقر فوق حقل النص لجعله نشطًا ويكتب hello Geeks! فيه.
Python
import pyautogui pyautogui.typewrite(['a' 'left' 'ctrlleft'])
هذا الرمز هو المعادل التلقائي لكتابة "a" بالضغط على مفتاح السهم الأيسر والضغط على مفتاح التحكم الأيسر.
Python
import pyautogui pyautogui.hotkey('ctrlleft' 'a')
هذا الرمز هو المعادل التلقائي للضغط على مفتاح ctrl الأيسر و"a" في وقت واحد. وبالتالي، سيؤدي هذا في نظام التشغيل Windows إلى تحديد كل النص الموجود على الشاشة.
مثال:
لإرسال رسالة في الواتس اب وحذفها للجميع تلقائيا. يجب أن يكون Whatsapp مفتوحًا بالفعل في Chrome لتشغيل هذا. بعد تشغيل هذا الرمز، افتح علامة تبويب WhatsApp على Chrome.
Python3import pyautogui as pg import time def delete_for_everyone(): pg.click(807 979) pg.typewrite('hello') pg.typewrite(['enter']) time.sleep(2) pg.click(1621 896) pg.click(1621 896) # time.sleep(1) pg.click(1693 859) # time.sleep(1) pg.click(1014 669) # time.sleep(1) pg.click(1111 605) a=20 time.sleep(10) while(a!=0): delete_for_everyone() a=a-1
إنشاء اختبار