logo

Muis- en toetsenbordautomatisering met Python

Dit artikel illustreert hoe u bewegingen van muis en toetsenbord kunt automatiseren met behulp van pyautogui module in python. Deze module is niet vooraf geladen met Python. Dus om het te installeren, voert u de volgende opdracht uit: 
 

hoe je een pointer in c kunt derefereren
 pip3 install pyautogui


 

Controle van muisbewegingen met behulp van de pyautogui-module




Python volgt en bestuurt de muis met behulp van het coördinatensysteem van het scherm. Stel dat de resolutie van uw scherm 1920X1080 is, dan ziet het coördinatensysteem van uw scherm er als volgt uit: 
 

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


 

    maat():Deze functie wordt gebruikt om de schermresolutie te verkrijgen.
     
Python
import pyautogui print(pyautogui.size()) 


Sla dit bestand op met de extensie .py en voer het bestand vervolgens uit. 
Deze Python-code gebruikt de functie size() om uw schermresolutie in xy-formaat uit te voeren: 
Uitgang: 
 

 (1920 1080)


Opmerking: sommige codes in dit artikel werken mogelijk niet op geeksforgeeks IDE, omdat geeksforgeeks IDE niet over de vereiste modules beschikt om deze codes uit te voeren. Maar deze codes kunnen eenvoudig lokaal op uw pc worden uitgevoerd door Python te installeren en de instructies in het artikel te volgen. 
 

    verplaatsNaar():gebruik deze functie om de muis in de pyautogui-module te bewegen. 
     
Python
import pyautogui pyautogui.moveTo(100 100 duration = 1) 


Deze code maakt gebruik van de functie moveTo() die x- en y-coördinaten en een optioneel duurargument nodig heeft. Deze functie verplaatst uw muisaanwijzer van de huidige locatie naar de x-y-coördinaat en kost tijd zoals gespecificeerd door het duurargument om dit te doen. Bewaar dit Python-script en voer het uit om uw muisaanwijzer op magische wijze van de huidige locatie naar coördinaten (100 100) te zien bewegen, wat 1 seconde in beslag neemt. 
 

    moveRel() functie:verplaatst de muisaanwijzer ten opzichte van de vorige positie. 
     
Python
import pyautogui pyautogui.moveRel(0 50 duration = 1) 


Deze code verplaatst de muisaanwijzer naar (0 50) ten opzichte van de oorspronkelijke positie. Als de muispositie vóór het uitvoeren van de code bijvoorbeeld (1000 1000) was, zal deze code de aanwijzer gedurende 1 seconde naar coördinaten (1000 1050) verplaatsen. 
 

vervang alles
    positie():functie om de huidige positie van de muisaanwijzer te bepalen. 
     
Python
import pyautogui print(pyautogui.position()) 


Uitvoer: coördinaten waar uw muis zich bevond op het moment dat het programma werd uitgevoerd. 
 

    klik():Functie die wordt gebruikt voor het klikken en slepen met de muis. 
     
Python
import pyautogui pyautogui.click(100 100) 


Deze code voert een typische muisklik uit op de locatie (100 100). 
We hebben twee functies die verband houden met de sleepbewerking van de muis dragTo en dragRel . Ze presteren vergelijkbaar met de functies moveTo en moveRel, behalve dat ze de linkermuisknop ingedrukt houden terwijl ze bewegen, waardoor een sleepbeweging wordt gestart. 
Deze functionaliteit kan op verschillende plaatsen worden gebruikt, zoals het verplaatsen van een dialoogvenster of het automatisch tekenen van iets met behulp van een potloodtool in MS Paint. Een vierkant in verf tekenen: 
 

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) 


Voordat u de code uitvoert, opent u MS Paint op de achtergrond met het potloodgereedschap geselecteerd. Voer nu de code uit en schakel snel over naar MS Paint vóór 10 seconden (aangezien we 10 seconden pauzetijd hebben gegeven met behulp van de slaap()-functie voordat het programma wordt uitgevoerd). 
Na 10 seconden ziet u een vierkant getekend in MS Paint met de linkerbovenrand op 1000 x 1000 en een randlengte van 100 pixels.

    rol():scroll-functie duurt nee. aantal pixels als argument en schuift het scherm omhoog tot een bepaald aantal pixels.
     
Python
import pyautogui pyautogui.scroll(200) 


Deze code scrollt over het actieve scherm tot 200 pixels. 
 

    typ():U kunt het typen van de tekenreeks automatiseren met behulp van de functie typewrite(). geef gewoon de string door die u wilt typen als argument voor deze functie. 
     
Python
import pyautogui pyautogui.click(100 100) pyautogui.typewrite('hello Geeks !') 


Stel dat er een tekstveld aanwezig was op de coördinaten 100 100 op het scherm, dan klikt deze code op het tekstveld om het actief te maken en typt u hallo Geeks! daarin. 
 

    Sleutelnamen doorgeven:U kunt sleutelnamen afzonderlijk doorgeven via de functie typewrite(). 
     
Python
import pyautogui pyautogui.typewrite(['a' 'left' 'ctrlleft']) 


Deze code is het automatische equivalent van het typen van 'a' door op de pijl-links te drukken en vervolgens op de linker control-toets. 
 

    Sneltoetscombinaties indrukken:Gebruik de hotkey()-functie om de combinatie van toetsen in te drukken, zoals ctrl-c ctrl-a etc.
     
Python
import pyautogui pyautogui.hotkey('ctrlleft' 'a') 


Deze code is het automatische equivalent van het tegelijkertijd indrukken van de linker ctrl en 'a'. In vensters zal dit dus resulteren in de selectie van alle tekst die op het scherm aanwezig is.

tekenreeks formaat

Voorbeeld:

Om een ​​bericht in WhatsApp te versturen en dit automatisch voor iedereen te verwijderen. Om dit te kunnen doen, moet WhatsApp al in Chrome zijn geopend. Nadat je deze code hebt uitgevoerd, open je het WhatsApp-tabblad in 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 

 

Quiz maken