logo

Automatització de ratolí i teclat amb Python

Aquest article il·lustra com automatitzar els moviments del ratolí i el teclat pyautogui mòdul en python. Aquest mòdul no està precarregat amb Python. Per tant, per instal·lar-lo, executeu la següent comanda: 
 

és greix proteic
 pip3 install pyautogui


 

Control dels moviments del ratolí mitjançant el mòdul pyautogui




Python rastreja i controla el ratolí mitjançant el sistema de coordenades de la pantalla. Suposem que la resolució de la pantalla és de 1920 x 1080, aleshores el sistema de coordenades de la pantalla té aquest aspecte: 
 

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


 

    mida ():Aquesta funció s'utilitza per obtenir la resolució de pantalla.
     
Python
import pyautogui print(pyautogui.size()) 


Deseu aquest fitxer amb l'extensió .py i, a continuació, executeu-lo. 
Aquest codi de Python utilitza la funció size() per produir la resolució de la pantalla en format x y: 
Sortida: 
 

 (1920 1080)


Nota: és possible que alguns dels codis proporcionats en aquest article no s'executin a l'IDE geeksforgeeks, ja que l'IDE geeksforgeeks no té els mòduls necessaris per executar aquests codis. Però aquests codis es poden executar fàcilment localment al vostre ordinador instal·lant Python i seguint les instruccions proporcionades a l'article. 
 

    moveTo():utilitzeu aquesta funció per moure el ratolí al mòdul pyautogui. 
     
Python
import pyautogui pyautogui.moveTo(100 100 duration = 1) 


Aquest codi utilitza la funció moveTo() que pren les coordenades x i y i un argument de durada opcional. Aquesta funció mou el punter del ratolí des de la seva ubicació actual a la coordenada x y i triga el temps especificat per l'argument de durada per fer-ho. Deseu i executeu aquest script Python per veure que el punter del ratolí es mou màgicament des de la seva ubicació actual fins a les coordenades (100 100) trigant 1 segon en aquest procés. 
 

    funció moveRel():mou el punter del ratolí en relació a la seva posició anterior. 
     
Python
import pyautogui pyautogui.moveRel(0 50 duration = 1) 


Aquest codi mourà el punter del ratolí a (0 50) en relació a la seva posició original. Per exemple, si la posició del ratolí abans d'executar el codi era (1000 1000), aquest codi mourà el punter a les coordenades (1000 1050) amb una durada d'1 segon. 
 

scan.nextstring java
    posició ():funció per obtenir la posició actual del punter del ratolí. 
     
Python
import pyautogui print(pyautogui.position()) 


Sortida: coordenades on residia el ratolí en el moment d'executar el programa. 
 

    feu clic ():Funció utilitzada per fer clic i arrossegar el ratolí. 
     
Python
import pyautogui pyautogui.click(100 100) 


Aquest codi fa un clic típic del ratolí a la ubicació (100 100). 
Tenim dues funcions associades a l'operació d'arrossegament del ratolí arrossegarTo i arrossegarRel . Realitzen funcions similars a moveTo i moveRel, excepte que mantenen premut el botó esquerre del ratolí mentre es mouen, iniciant així un arrossegament. 
Aquesta funcionalitat es pot utilitzar en diversos llocs com moure un quadre de diàleg o dibuixar alguna cosa automàticament mitjançant una eina de llapis a MS Paint. Per dibuixar un quadrat amb pintura: 
 

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) 


Abans d'executar el codi, obriu MS paint en segon pla amb l'eina llapis seleccionada. Ara executeu el codi ràpidament, canvieu a MS paint abans de 10 segons (ja que hem donat un temps de pausa de 10 segons utilitzant la funció sleep() abans d'executar el programa). 
Després de 10 segons, veureu un quadrat dibuixat amb pintura MS amb la seva vora superior esquerra a 1000 1000 i una longitud de vora 100 píxels.

    scroll():la funció de desplaçament pren no. de píxels com a argument i desplaça la pantalla fins a un nombre determinat de píxels.
     
Python
import pyautogui pyautogui.scroll(200) 


Aquest codi desplaça la pantalla activa fins a 200 píxels. 
 

    escriure a màquina():Podeu automatitzar l'escriptura de la cadena utilitzant la funció typewrite(). només cal passar la cadena que voleu escriure com a argument d'aquesta funció. 
     
Python
import pyautogui pyautogui.click(100 100) pyautogui.typewrite('hello Geeks !') 


Suposem que hi havia un camp de text a les coordenades 100 100 a la pantalla, llavors aquest codi farà clic al camp de text per activar-lo i escriu hola Geeks! en ell. 
 

    Passant noms de claus:Podeu passar noms de clau per separat mitjançant la funció typewrite(). 
     
Python
import pyautogui pyautogui.typewrite(['a' 'left' 'ctrlleft']) 


Aquest codi és l'equivalent automàtic a escriure 'a' prement la tecla de fletxa esquerra i prement la tecla de control esquerra. 
 

    Prement les combinacions de tecles d'accés directe:Utilitzeu la funció Hotkey() per prémer la combinació de tecles com ctrl-c ctrl-a, etc.
     
Python
import pyautogui pyautogui.hotkey('ctrlleft' 'a') 


Aquest codi és l'equivalent automàtic de prémer ctrl esquerre i 'a' simultàniament. Així, a les finestres, això donarà lloc a la selecció de tot el text present a la pantalla.

corda a llarg

Exemple:

Per enviar un missatge a WhatsApp i eliminar-lo automàticament per a tothom. Heu de tenir Whatsapp ja obert a Chrome per executar-ho. Després d'executar aquest codi, obriu la pestanya WhatsApp a 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 un qüestionari