En este artículo, veremos cómo crear un auto-clicker usando Python. El código tomará la entrada del teclado cuando el usuario haga clic en la tecla de inicio y finalice el clicker automático cuando el usuario haga clic en la tecla de salida, el clicker automático comienza a hacer clic dondequiera que se coloque el puntero en la pantalla. Vamos a utilizar el módulo pynput aquí.
¿Qué es Clicker automático?
Auto-Clicker es un script en el que puede controlar automáticamente el mouse y el teclado tantas veces como desee. Se controla mediante teclas definidas por el usuario. Funciona en varias plataformas como Windows, Mac y Linux. El clicker automático está presente en el módulo pywin32.
Acercarse:
En este proyecto, utilizaremos un módulo multiplataforma pynput para controlar el mouse y monitorear el teclado al mismo tiempo para crear un simple auto-clicker. Para verificar los eventos del mouse, instalaremos el módulo pynput (usado para controlar el mouse) para esta ejecución, pip install pynput en cmd.
Nota: si no sabe cómo configurar el paquete python-pip en su sistema, haga clic aquí
Verifique si el módulo pynput se ha instalado correctamente en su entorno de trabajo para esto, abra IDLE en el sistema que es cmd o Python Shell. Ejecute el comando import pynput, después de ejecutar esto, la salida debería dar cero errores, lo que significa que su módulo se instaló correctamente.
Implementación:
Procedamos ahora con el código que se requiere para construir un Auto-clicker usando Python. Siga los pasos a continuación para crear un clicker automático:
Paso 1: importe el tiempo y el subproceso, luego importe el botón y el controlador desde el módulo pynput.mouse . Importe Listener y KeyCode desde pynput.keyboard.
Python3
# importing time and threading import time import threading from pynput.mouse import Button, Controller # pynput.keyboard is used to watch events of # keyboard for start and stop of auto-clicker from pynput.keyboard import Listener, KeyCode
Paso 2: Cree cuatro variables como se menciona a continuación,
- delay : Retraso entre cada clic (en segundos)
- botón : El botón se usa para hacer clic en cualquier dirección que desee. Botón.izquierda | Botón.medio | Botón.derecho
- start_stop_key : la tecla utilizada para iniciar y detener el clic mientras ejecuta el programa para ejecutar el clic automático. Debe ser de una clase clave o establecerse mediante KeyCode .
- exit_key : la clave utilizada para finalizar el clicker automático que se está ejecutando. Esto debe ser de la clase de clave o establecerse mediante KeyCode .
Python3
# four variables are created to # control the auto-clicker delay = 0.001 button = Button.right start_stop_key = KeyCode(char='a') stop_key = KeyCode(char='b')
Paso 3: Cree una clase que extienda threading.Thread. Pase retraso y botón a la clase que tiene dos banderas para verificar si el programa se ejecuta o no.
Python3
# threading.Thread is used # to control clicks class ClickMouse(threading.Thread): # delay and button is passed in class # to check execution of auto-clicker def __init__(self, delay, button): super(ClickMouse, self).__init__() self.delay = delay self.button = button self.running = False self.program_running = True
Paso 4: agregue métodos para controlar los subprocesos externamente.
Python3
def start_clicking(self): self.running = True def stop_clicking(self): self.running = False def exit(self): self.stop_clicking() self.program_running = False
Paso 5: se crea un método cuando se inicia el subproceso, program_running se ejecuta en bucle hasta que el valor resulta ser verdadero y también crea otro bucle dentro del bucle existente donde verifica si la ejecución está configurada como verdadera o no. En caso de que estemos dentro de ambos bucles, hará clic en el botón de configuración y dormirá durante el retraso establecido.
Python3
# method to check and run loop until # it is true another loop will check # if it is set to true or not, # for mouse click it set to button # and delay. def run(self): while self.program_running: while self.running: mouse.click(self.button) time.sleep(self.delay) time.sleep(0.1)
Paso 6: crear una instancia para el controlador del mouse, luego crear el subproceso ClickMouse . Inicie la instancia para pasar al bucle dentro del método de ejecución.
Python3
# instance of mouse controller is created mouse = Controller() click_thread = ClickMouse(delay, button) click_thread.start()
Paso 7: Cree un método on_press que tome una tecla como argumento y configure un detector de teclado. start_stop_key coincide con una tecla de inicio (a) cuando se ejecuta. Luego, el clic debe finalizar cuando el indicador de ejecución se establece en Verdadero en el hilo. El método de salida se llama en el método si se ejecuta la tecla de salida (b) y se detiene el oyente.
Python3
# on_press method takes # key as argument def on_press(key): # start_stop_key will stop clicking # if running flag is set to true if key == start_stop_key: if click_thread.running: click_thread.stop_clicking() else: click_thread.start_clicking() # here exit method is called and when # key is pressed it terminates auto clicker elif key == stop_key: click_thread.exit() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Después de que se ejecuta el código, podemos ver en la salida como se muestra a continuación, muestra la cantidad de clics que ha hecho el auto-clicker después de implementar el código. Es compatible con Windows, Mac y Linux. Auto-Clicker es un software útil para los sistemas, ya que permite ahorrar una cantidad razonable de tiempo que se gasta en una cantidad repetida de clics.
A continuación el programa completo:
Python3
# importing time and threading import time import threading from pynput.mouse import Button, Controller # pynput.keyboard is used to watch events of # keyboard for start and stop of auto-clicker from pynput.keyboard import Listener, KeyCode # four variables are created to # control the auto-clicker delay = 0.001 button = Button.right start_stop_key = KeyCode(char='a') stop_key = KeyCode(char='b') # threading.Thread is used # to control clicks class ClickMouse(threading.Thread): # delay and button is passed in class # to check execution of auto-clicker def __init__(self, delay, button): super(ClickMouse, self).__init__() self.delay = delay self.button = button self.running = False self.program_running = True def start_clicking(self): self.running = True def stop_clicking(self): self.running = False def exit(self): self.stop_clicking() self.program_running = False # method to check and run loop until # it is true another loop will check # if it is set to true or not, # for mouse click it set to button # and delay. def run(self): while self.program_running: while self.running: mouse.click(self.button) time.sleep(self.delay) time.sleep(0.1) # instance of mouse controller is created mouse = Controller() click_thread = ClickMouse(delay, button) click_thread.start() # on_press method takes # key as argument def on_press(key): # start_stop_key will stop clicking # if running flag is set to true if key == start_stop_key: if click_thread.running: click_thread.stop_clicking() else: click_thread.start_clicking() # here exit method is called and when # key is pressed it terminates auto clicker elif key == stop_key: click_thread.exit() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Ahora ejecutemos el programa Python que hemos escrito y luego presionemos las teclas de inicio (a) y parada (a) para iniciar el clicker automático.
Producción: