Automatización de mouse y teclado usando Python

Este artículo ilustra cómo automatizar los movimientos del mouse y el teclado usando el módulo pyautogui en python. Este módulo no está precargado con python. Entonces, para instalarlo, ejecute el siguiente comando: 
 

 pip3 install pyautogui

Controlando los movimientos del mouse usando el módulo pyautogui

Python rastrea y controla el mouse usando el sistema de coordenadas de la pantalla. Suponga que la resolución de su pantalla es 1920X1080, entonces el sistema de coordenadas de su pantalla se ve así: 
 

gui in python

  • size(): esta función se utiliza para obtener la resolución de pantalla.
     

Python

import pyautogui
print(pyautogui.size())

Guarde este archivo con la extensión .py y luego ejecútelo. 
Este código de python usa la función size() para mostrar la resolución de su pantalla en formato x, y: 
Salida: 
 

 (1920, 1080)

Nota: Es posible que algunos de los códigos proporcionados en este artículo no se ejecuten en el IDE de geeksforgeeks, ya que el IDE de geeksforgeeks no tiene los módulos necesarios para ejecutar estos códigos. Pero estos códigos se pueden ejecutar fácilmente localmente en su PC instalando Python y siguiendo las instrucciones proporcionadas en el artículo. 
 

  • moveTo(): ​​use esta función para mover el mouse en el módulo pyautogui. 
     

Python

import pyautogui
pyautogui.moveTo(100, 100, duration = 1)

Este código usa la función moveTo(), que toma las coordenadas x e y, y un argumento de duración opcional. Esta función mueve el puntero del mouse desde su ubicación actual a la coordenada x, y, y toma el tiempo especificado por el argumento de duración para hacerlo. Guarde y ejecute este script de python para ver el puntero de su mouse moviéndose mágicamente desde su ubicación actual a las coordenadas (100, 100), tomando 1 segundo en este proceso. 
 

  • función moveRel(): mueve el puntero del mouse en relación con su posición anterior. 
     

Python

import pyautogui
pyautogui.moveRel(0, 50, duration = 1)

Este código moverá el puntero del mouse a (0, 50) en relación con su posición original. Por ejemplo, si la posición del mouse antes de ejecutar el código era (1000, 1000), entonces este código moverá el puntero a las coordenadas (1000, 1050) en una duración de 1 segundo. 
 

  • position(): función para obtener la posición actual del puntero del mouse. 
     

Python

import pyautogui
print(pyautogui.position())

Salida: coordenadas donde residía su mouse en el momento de ejecutar el programa. 
 

  • click(): Función utilizada para hacer clic y arrastrar el mouse. 
     

Python

import pyautogui
pyautogui.click(100, 100)

Este código realiza un clic de ratón típico en la ubicación (100, 100). 
Tenemos dos funciones asociadas a la operación de arrastre del ratón, dragTo y dragRel . Realizan funciones similares a moveTo y moveRel, excepto que mantienen presionado el botón izquierdo del mouse mientras se mueven, iniciando así un arrastre. 
Esta funcionalidad se puede usar en varios lugares, como mover un cuadro de diálogo o dibujar algo automáticamente usando una herramienta de lápiz en MS Paint. Para dibujar un cuadrado en 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)

Antes de ejecutar el código, abra MS Paint en segundo plano con la herramienta Lápiz seleccionada. Ahora ejecute el código, cambie rápidamente a MS Paint antes de 10 segundos (ya que hemos dado 10 segundos de tiempo de pausa usando la función sleep() antes de ejecutar el programa). 
Después de 10 segundos, verá que se dibuja un cuadrado en pintura MS, con su borde superior izquierdo en 1000, 1000 y una longitud de borde de 100 píxeles.

  • scroll(): la función de desplazamiento toma no. de píxeles como argumento y desplaza la pantalla hacia arriba hasta un número determinado de píxeles.
     

Python

import pyautogui
pyautogui.scroll(200)

Este código desplaza la pantalla activa hasta 200 píxeles. 
 

  • typewrite(): puede automatizar la escritura de la string mediante el uso de la función typewrite(). simplemente pase la string que desea escribir como argumento de esta función. 
     

Python

import pyautogui
pyautogui.click(100, 100)
pyautogui.typewrite("hello Geeks !")

Supongamos que un campo de texto estuviera presente en las coordenadas 100, 100 en la pantalla, luego este código hará clic en el campo de texto para activarlo y escribir «¡Hola Geeks!» en eso. 
 

  • Pasar nombres de claves: Puede pasar nombres de claves por separado a través de la función typewrite(). 
     

Python

import pyautogui
pyautogui.typewrite(["a", "left", "ctrlleft"])

Este código es el equivalente automático de escribir «a», presionar la tecla de flecha izquierda y presionar la tecla de control izquierda. 
 

  • Presionar combinaciones de teclas rápidas: Use la función hotkey() para presionar la combinación de teclas como ctrl-c, ctrl-a, etc.
     

Python

import pyautogui
pyautogui.hotkey("ctrlleft", "a")

Este código es el equivalente automático de presionar Ctrl izquierdo y «a» simultáneamente. Por lo tanto, en Windows, esto resultará en la selección de todo el texto presente en la pantalla.

Ejemplo:

Para enviar un mensaje en WhatsApp y eliminarlo para todos automáticamente. Debe tener Whatsapp ya abierto en Chrome para ejecutar esto. Después de ejecutar este código, abra la pestaña de WhatsApp en 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

Este artículo es una contribución de tkkhhaarree . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *