logo

أتمتة الماوس ولوحة المفاتيح باستخدام بايثون

توضح هذه المقالة كيفية أتمتة حركات الماوس ولوحة المفاتيح باستخدام com.pyautogui الوحدة النمطية في بيثون. لم يتم تحميل هذه الوحدة مسبقًا ببايثون. لذلك لتثبيته قم بتشغيل الأمر التالي: 
 

نماذج التعلم الآلي
 pip3 install pyautogui


 

التحكم في حركات الماوس باستخدام وحدة pyautogui




تقوم Python بتتبع الماوس والتحكم فيه باستخدام نظام الإحداثيات الخاص بالشاشة. لنفترض أن دقة شاشتك هي 1920X1080، فإن نظام إحداثيات شاشتك يبدو كما يلي: 
 

واجهة المستخدم الرسومية في بيثون' src='//techcodeview.com/img/python/69/mouse-and-keyboard-automation-using-python.webp' title=


 

    مقاس():تُستخدم هذه الوظيفة للحصول على دقة الشاشة.
     
Python
import pyautogui print(pyautogui.size()) 


احفظ هذا الملف بامتداد .py ثم قم بتشغيل الملف. 
يستخدم رمز python وظيفة size() لإخراج دقة الشاشة بتنسيق x y: 
الإخراج: 
 

 (1920 1080)


ملاحظة: قد لا تعمل بعض الرموز الواردة في هذه المقالة على geeksforgeeks IDE نظرًا لأن geeksforgeeks IDE لا يحتوي على الوحدات المطلوبة لتشغيل هذه الرموز. ولكن يمكن تشغيل هذه الرموز بسهولة محليًا على جهاز الكمبيوتر الخاص بك عن طريق تثبيت python واتباع الإرشادات الواردة في المقالة. 
 

    الانتقال إلى ():استخدم هذه الوظيفة لتحريك الماوس في وحدة pyautogui. 
     
Python
import pyautogui pyautogui.moveTo(100 100 duration = 1) 


يستخدم هذا الرمز الدالة moveTo() التي تأخذ إحداثيات x وy ووسيطة مدة اختيارية. تقوم هذه الوظيفة بتحريك مؤشر الماوس من موقعه الحالي إلى الإحداثي x y وتستغرق وقتًا محددًا بواسطة وسيطة المدة للقيام بذلك. قم بحفظ وتشغيل برنامج python النصي هذا لرؤية مؤشر الماوس الخاص بك يتحرك بطريقة سحرية من موقعه الحالي إلى الإحداثيات (100 100) ويستغرق ثانية واحدة في هذه العملية. 
 

    وظيفة moveRel():تحريك مؤشر الماوس بالنسبة إلى موضعه السابق. 
     
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. لرسم مربع بالطلاء: 
 

Python
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 بكسل. 
 

إدراج الخلية في
    الآلة الكاتبة ():يمكنك أتمتة كتابة السلسلة باستخدام وظيفة typewrite(). فقط قم بتمرير السلسلة التي تريد كتابتها كوسيطة لهذه الوظيفة. 
     
Python
import pyautogui pyautogui.click(100 100) pyautogui.typewrite('hello Geeks !') 


لنفترض أن هناك حقل نصي موجود عند الإحداثيات 100 100 على الشاشة، فسيقوم هذا الرمز بالنقر فوق حقل النص لجعله نشطًا ويكتب hello Geeks! فيه. 
 

    تمرير أسماء المفاتيح:يمكنك تمرير أسماء المفاتيح بشكل منفصل من خلال وظيفة typewrite(). 
     
Python
import pyautogui pyautogui.typewrite(['a' 'left' 'ctrlleft']) 


هذا الرمز هو المعادل التلقائي لكتابة "a" بالضغط على مفتاح السهم الأيسر والضغط على مفتاح التحكم الأيسر. 
 

    الضغط على مجموعات مفاتيح التشغيل السريع:استخدم وظيفة hotkey() للضغط على مجموعة المفاتيح مثل ctrl-c ctrl-a وما إلى ذلك.
     
Python
import pyautogui pyautogui.hotkey('ctrlleft' 'a') 


هذا الرمز هو المعادل التلقائي للضغط على مفتاح ctrl الأيسر و"a" في وقت واحد. وبالتالي، سيؤدي هذا في نظام التشغيل Windows إلى تحديد كل النص الموجود على الشاشة.

مثال:

لإرسال رسالة في الواتس اب وحذفها للجميع تلقائيا. يجب أن يكون Whatsapp مفتوحًا بالفعل في Chrome لتشغيل هذا. بعد تشغيل هذا الرمز، افتح علامة تبويب WhatsApp على Chrome.

Python3
import 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 

 

إنشاء اختبار