Pelės ir klaviatūros automatizavimas naudojant Python

Pelės ir klaviatūros automatizavimas naudojant Python

Šiame straipsnyje parodyta, kaip automatizuoti pelės ir klaviatūros judesius naudojant pyautogui modulis python. Šis modulis nėra iš anksto įkeltas su python. Taigi, norėdami jį įdiegti, paleiskite šią komandą: 
 

 pip3 install pyautogui 


 

Pelės judesių valdymas naudojant pyautogui modulį


Python seka ir valdo pelę naudodamas ekrano koordinačių sistemą. Tarkime, kad ekrano skiriamoji geba yra 1920x1080, tada ekrano koordinačių sistema atrodo taip: 
 

gui python


 

    dydis (): Ši funkcija naudojama norint gauti ekrano skiriamąją gebą.
     
Python
   import   pyautogui   print  (  pyautogui  .  size  ())   


Išsaugokite šį failą su plėtiniu .py ir paleiskite failą. 
Šis python kodas naudoja funkciją size(), kad ekrano skiriamoji geba būtų rodoma x y formatu: 
Išvestis: 
 

 (1920 1080) 


Pastaba: kai kurie šiame straipsnyje pateikti kodai gali neveikti geeksforgeeks IDE, nes geeksforgeeks IDE neturi reikiamų modulių šiems kodams paleisti. Tačiau šiuos kodus galima lengvai paleisti vietoje kompiuteryje įdiegus python ir vadovaujantis straipsnyje pateiktomis instrukcijomis. 
 

    perkelti į (): naudokite šią funkciją norėdami perkelti pelę pyautogui modulyje. 
     
Python
   import   pyautogui   pyautogui  .  moveTo  (  100     100     duration   =   1  )   


Šiame kode naudojama funkcija moveTo(), kuri paima x ir y koordinates ir pasirenkamą trukmės argumentą. Ši funkcija perkelia pelės žymeklį iš dabartinės vietos į x y koordinatę ir tam reikia laiko, nurodyto trukmės argumentu. Išsaugokite ir paleiskite šį python scenarijų, kad pamatytumėte, kaip jūsų pelės žymeklis stebuklingai juda iš dabartinės vietos į koordinates (100 100), kuri trunka 1 sekundę. 
 

    MoveRel() funkcija: perkelia pelės žymeklį ankstesnės padėties atžvilgiu. 
     
Python
   import   pyautogui   pyautogui  .  moveRel  (  0     50     duration   =   1  )   


Šis kodas perkels pelės žymeklį į (0 50), palyginti su pradine padėtimi. Pavyzdžiui, jei pelės padėtis prieš paleidžiant kodą buvo (1000 1000), šis kodas per 1 sekundę perkels žymeklį į koordinates (1000 1050). 
 

    pozicija (): funkcija, kad gautumėte esamą pelės žymeklio padėtį. 
     
Python
   import   pyautogui   print  (  pyautogui  .  position  ())   


Išvestis: koordinatės, kur buvo jūsų pelė programos vykdymo metu. 
 

    spustelėkite (): Funkcija, naudojama pelės spustelėjimui ir vilkimui. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   


Šis kodas atlieka tipišką pelės paspaudimą vietoje (100 100). 
Turime dvi funkcijas, susijusias su pelės vilkimo operacija dragTo ir dragRel . Jie atlieka panašias funkcijas kaip „moveTo“ ir „moveRel“, išskyrus tuos atvejus, kai judėdami laiko kairįjį pelės mygtuką, taip inicijuodami vilkimą. 
Šią funkciją galima naudoti įvairiose vietose, pavyzdžiui, perkeliant dialogo langą arba automatiškai piešiant ką nors naudojant pieštuko įrankį programoje MS Paint. Norėdami piešti kvadratą dažais: 
 

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  )   


Prieš paleisdami kodą atidarykite MS paint fone su pasirinktu pieštuko įrankiu. Dabar paleiskite kodą greitai perjunkite į MS paint prieš 10 sekundžių (nes prieš paleisdami programą suteikėme 10 sekundžių pauzės laiką naudodami funkciją "Sleep()"). 
Po 10 sekundžių pamatysite MS dažais nupieštą kvadratą, kurio viršutinis kairysis kraštas yra 1000 1000, o krašto ilgis – 100 pikselių.

    slinkti (): slinkties funkcija neužima. pikselių kaip argumentą ir slenka ekranu iki nurodyto pikselių skaičiaus.
     
Python
   import   pyautogui   pyautogui  .  scroll  (  200  )   


Šis kodas slenka aktyvų ekraną iki 200 pikselių. 
 

    rašomąja mašinėle (): Galite automatizuoti eilutės įvedimą naudodami rašomosios mašinėlės () funkciją. tiesiog perduokite eilutę, kurią norite įvesti kaip šios funkcijos argumentą. 
     
Python
   import   pyautogui   pyautogui  .  click  (  100     100  )   pyautogui  .  typewrite  (  'hello Geeks !'  )   


Tarkime, kad ekrane yra teksto laukas, kurio koordinatės yra 100 100, tada šis kodas spustelėja teksto lauką, kad jis būtų aktyvus, ir įves „hello Geeks“! joje. 
 

    Raktų pavadinimų perdavimas: Klavišų pavadinimus galite perduoti atskirai naudodami rašomosios mašinėlės () funkciją. 
     
Python
   import   pyautogui   pyautogui  .  typewrite  ([  'a'     'left'     'ctrlleft'  ])   


Šis kodas yra automatinis „a“ įvedimo paspaudus kairįjį rodyklės klavišą ir kairįjį valdymo klavišą atitikmuo. 
 

    Paspaudus sparčiųjų klavišų derinius: Norėdami paspausti klavišų kombinaciją, pvz., ctrl-c ctrl-a ir pan., naudokite funkciją Hotkey()
     
Python
   import   pyautogui   pyautogui  .  hotkey  (  'ctrlleft'     'a'  )   


Šis kodas yra automatinis atitikmuo vienu metu paspaudus kairįjį ctrl ir „a“. Taigi languose bus pasirinktas visas ekrane esantis tekstas.

Pavyzdys:

Norėdami išsiųsti pranešimą „WhatsApp“ ir automatiškai ištrinti jį visiems. Kad tai paleistumėte, „Whatsapp“ jau turi būti atidarytas „Chrome“. Paleidę šį kodą atidarykite „WhatsApp“ skirtuką „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   

 

Sukurti viktoriną