Crear un clicker automático en Python

Manav Narula 21 junio 2023
  1. Use el módulo pyautogui para crear un clicker automático en Python
  2. Use win32api para crear un clicker automático en Python
  3. Use el módulo pynput para crear un clicker automático en Python
  4. Conclusión
Crear un clicker automático en Python

Como sugiere el nombre, un clicker automático en Python es una aplicación Python simple que hace clic repetidamente con el mouse según los requisitos del usuario. Se pueden modificar diferentes parámetros, como la velocidad, la frecuencia y la posición, según el usuario.

Python tiene diferentes módulos disponibles para controlar dispositivos como un teclado, mouse, etc. Por lo tanto, podemos crear fácilmente un clicker automático en Python usando estos módulos.

Este tutorial demostrará diferentes formas de crear un clicker automático en Python.

Use el módulo pyautogui para crear un clicker automático en Python

El módulo pyautogui puede crear scripts que controlan el mouse y el teclado del dispositivo.

Podemos usar la función pyautogui.click() para hacer clic con el ratón. Podemos desplazar previamente el ratón a la posición deseada mediante la función pyautogui.moveTo() y especificar las coordenadas del cursor.

Para crear un clicker automático con estas funciones, moveremos el mouse y ejecutaremos un bucle for para ejecutar la función pyautogui.click() de cada iteración. También retrasaremos un poco antes de cada clic para que esto sea visible.

Usaremos la función sleep() del módulo time para el retraso.

Implementamos la lógica para el clicker automático en el siguiente código.

import pyautogui
import time

pyautogui.moveTo(600, 800)
for i in range(20):
    time.sleep(0.1)
    pyautogui.click()

En el ejemplo anterior, movemos el cursor a las coordenadas (600,800) y hacemos clic con el mouse 20 veces usando la función clic().

Use win32api para crear un clicker automático en Python

El win32api se utiliza para controlar y automatizar objetos COM de Windows. Podemos usar estos objetos del módulo win32con e imitar un clic del mouse.

Para esto, usamos la función win32api.mouse_event dos veces, una para win32con.MOUSEEVENTF_LEFTDOWN y la otra para win32con.MOUSEEVENTF_LEFTDOWN para imitar un clic del mouse.

Estableceremos la posición del cursor en las coordenadas requeridas con la función win23api.SetCursorPos(). Luego, usaremos un enfoque similar al que usamos en el método anterior para crear un clicker automático en Python.

Vea el código a continuación.

import win32api
import win32con
import time

win32api.SetCursorPos((600, 800))
for i in range(20):
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 600, 800, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 600, 800, 0, 0)
    time.sleep(0.1)

Use el módulo pynput para crear un clicker automático en Python

También tenemos el pynput para automatizar acciones de mouse y teclado en scripts de Python. Este método difiere de los dos anteriores, ya que crearemos una clase con las funcionalidades necesarias para crear un auto clicker.

Crearemos una clase que actuará como un clicker automático cuando se presione una tecla específica. Se asignará otra tecla para detener el clic.

Tendremos que importar los módulos pynput.mouse y pynput.keyboard.

La clase creada se extenderá a la clase threading.Thread para que podamos controlar los hilos con diferentes funcionalidades.

En el método __init__ de la clase, especificaremos un ligero retraso entre cada clic como hicimos anteriormente y mencionaremos que haremos clic con el botón izquierdo del mouse usando el objeto Button.Left.

Los subprocesos seguirán funcionando hasta que se presione la tecla para dejar de hacer clic. Usaremos el método start() de la clase threading.Thread para empezar a hacer clic.

En el método running(), también utilizaremos el objeto de clase Controller.

Para iniciar y detener los hilos, crearemos una función. La función Listener() ejecutará la función definida mientras presiona la tecla usando el argumento on_press.

Esta lógica se implementa en el siguiente código.

import time
import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode

start_end = KeyCode(char="a")
exit_key = KeyCode(char="z")


class auto_clicker_class(threading.Thread):
    def __init__(self):
        super(auto_clicker_class, self).__init__()
        self.delay = 0.1
        self.button = Button.left
        self.running = False
        self.program_run = True

    def begin_clicking(self):
        self.running = True

    def clicking_stop(self):
        self.running = False

    def exit(self):
        self.clicking_stop()
        self.program_run = False

    def run(self):
        while self.program_run:
            while self.running:
                mouse_ob.click(self.button)
                time.sleep(self.delay)
            time.sleep(0.1)


mouse_ob = Controller()
t = auto_clicker_class()
t.start()


def fun(k):
    if k == start_end:
        if t.running:
            t.clicking_stop()
        else:
            t.begin_clicking()
    elif k == exit_key:
        t.exit()
        listener.stop()


with Listener(on_press=fun) as listener:
    listener.join()

Conclusión

Hablamos de los clickers automáticos en este tutorial. Los primeros dos métodos son relativamente simples ya que ejecutamos una función repetida varias veces usando el bucle for para imitar un clic del mouse.

El método final crea una secuencia de comandos de clic automático adecuada en Python que puede comenzar y dejar de hacer clic en función de la tecla presionada en el teclado.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn