logo

Automatizare mouse și tastatură folosind Python

Acest articol ilustrează cum să automatizezi mișcările mouse-ului și tastaturii folosind pyautogui modul în python. Acest modul nu este preîncărcat cu python. Deci, pentru a-l instala, rulați următoarea comandă: 
 

cum să dezactivezi modul dezvoltator în Android
 pip3 install pyautogui


 

Controlul mișcărilor mouse-ului folosind modulul pyautogui




Python urmărește și controlează mouse-ul folosind sistemul de coordonate al ecranului. Să presupunem că rezoluția ecranului este 1920X1080, atunci sistemul de coordonate al ecranului arată astfel: 
 

gui în python' src='//techcodeview.com/img/python/69/mouse-and-keyboard-automation-using-python.webp' title=


 

    dimensiune():Această funcție este folosită pentru a obține rezoluția ecranului.
     
Python
import pyautogui print(pyautogui.size()) 


Salvați acest fișier cu extensia .py și apoi rulați fișierul. 
Acest cod python folosește funcția size() pentru a afișa rezoluția ecranului în format x y: 
Ieșire: 
 

 (1920 1080)


Notă: Este posibil ca unele dintre codurile furnizate în acest articol să nu ruleze pe geeksforgeeks IDE, deoarece geeksforgeeks IDE nu are modulele necesare pentru a rula aceste coduri. Dar aceste coduri pot fi rulate cu ușurință local pe computer, instalând python și urmând instrucțiunile furnizate în articol. 
 

    muta la():utilizați această funcție pentru a muta mouse-ul în modulul pyautogui. 
     
Python
import pyautogui pyautogui.moveTo(100 100 duration = 1) 


Acest cod folosește funcția moveTo() care preia coordonatele x și y și un argument opțional de durată. Această funcție mută indicatorul mouse-ului din locația curentă la coordonatele x y și necesită timp, așa cum este specificat de argumentul durată, pentru a face acest lucru. Salvați și rulați acest script Python pentru a vedea că indicatorul mouse-ului se mișcă magic de la locația sa actuală la coordonatele (100 100) durând 1 secundă în acest proces. 
 

    Funcția moveRel():mută indicatorul mouse-ului în raport cu poziția anterioară. 
     
Python
import pyautogui pyautogui.moveRel(0 50 duration = 1) 


Acest cod va muta indicatorul mouse-ului la (0 50) în raport cu poziția sa inițială. De exemplu, dacă poziția mouse-ului înainte de a rula codul a fost (1000 1000), atunci acest cod va muta indicatorul la coordonate (1000 1050) cu durata de 1 secundă. 
 

    poziţie():funcția pentru a obține poziția curentă a indicatorului mouse-ului. 
     
Python
import pyautogui print(pyautogui.position()) 


Ieșire: coordonează locul în care se afla mouse-ul în momentul executării programului. 
 

    clic():Funcție utilizată pentru a face clic și trage mouse-ul. 
     
Python
import pyautogui pyautogui.click(100 100) 


Acest cod efectuează un clic tipic de mouse în locație (100 100). 
Avem două funcții asociate cu operația de glisare a mouse-ului dragTo și dragRel . Ei efectuează similar funcțiilor moveTo și moveRel, cu excepția faptului că țin apăsat butonul stâng al mouse-ului în timp ce se deplasează, inițiind astfel o glisare. 
Această funcționalitate poate fi utilizată în diferite locuri, cum ar fi mutarea unei casete de dialog sau desenarea automată a ceva folosind un instrument creion în MS Paint. Pentru a desena un pătrat în vopsea: 
 

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) 


Înainte de a rula codul, deschideți MS paint în fundal cu instrumentul creion selectat. Acum rulați codul, treceți rapid la MS paint înainte de 10 secunde (deoarece am acordat un timp de pauză de 10 secunde folosind funcția sleep() înainte de a rula programul). 
După 10 secunde, veți vedea un pătrat desenat în vopsea MS cu marginea din stânga sus la 1000 1000 și lungimea marginii de 100 de pixeli.

kajal aggarwal
    scroll():funcția de defilare ia nr. de pixeli ca argument și derulează ecranul până la un anumit număr de pixeli.
     
Python
import pyautogui pyautogui.scroll(200) 


Acest cod derulează ecranul activ până la 200 de pixeli. 
 

cum aflu dimensiunea monitorului meu
    dactilografia():Puteți automatiza tastarea șirului folosind funcția typewrite(). treceți doar șirul pe care doriți să-l introduceți ca argument al acestei funcție. 
     
Python
import pyautogui pyautogui.click(100 100) pyautogui.typewrite('hello Geeks !') 


Să presupunem că un câmp de text a fost prezent la coordonatele 100 100 pe ecran, atunci acest cod va face clic pe câmpul de text pentru a-l activa și va tasta Hello Geeks! în ea. 
 

    Transmiterea numelor cheilor:Puteți trece nume de chei separat prin funcția typewrite(). 
     
Python
import pyautogui pyautogui.typewrite(['a' 'left' 'ctrlleft']) 


Acest cod este echivalentul automat al tastării „a” apăsând tasta săgeată stânga și apăsând tasta control stânga. 
 

    Apăsând combinații de taste rapide:Utilizați funcția Hotkey() pentru a apăsa combinația de taste precum ctrl-c ctrl-a etc.
     
Python
import pyautogui pyautogui.hotkey('ctrlleft' 'a') 


Acest cod este echivalentul automat al apăsării simultane pe ctrl stânga și „a”. Astfel, în Windows, aceasta va avea ca rezultat selectarea întregului text prezent pe ecran.

Exemplu:

Pentru a trimite un mesaj în WhatsApp și a-l șterge automat pentru toată lumea. Trebuie să aveți Whatsapp deja deschis în Chrome pentru a rula acest lucru. După ce rulați acest cod, deschideți fila WhatsApp pe 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 

 

Creați un test