¿Qué es el clic automático?
Auto clicker es un programa en el que se escribe un código y, según el código, si algún usuario define que se presiona una tecla, se hará clic con el mouse automáticamente. En Python, podemos crear un proyecto de clic automático utilizando un módulo pynput que se puede instalar mediante el comando pip.
Podemos dividir el código del clicker automático en los siguientes pasos:
1. Importar módulos requeridos
Importaremos el módulo de tiempo y subproceso, e importaremos el módulo Botón, Controlador desde el submódulo del mouse de pynput. De la misma manera, importaremos los módulos Listener y Keycode desde el submódulo de teclado de pynput.
Ejemplo:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Inicializando las variables
En esta sección inicializaremos cuatro variables que son muy útiles para la ejecución del programa.
Ejemplo:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Creando la clase
En esta sección, crearemos la clase que extiende la clase de hilo para verificar si el clic del mouse se ha ejecutado o no.
leer archivo excel en java
Ejemplo:
class ClickTheMouse(threading.Thread): def __init__(self, delayTime, buttonDirection): super(ClickTheMouse, self).__init__() self.delayTime = delayTime self.buttonDirection = buttonDirection self.running = False self.program_running = True
4. En esta sección, definiremos algunos métodos para controlar los clics del mouse usando hilos externos.
Ejemplo:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. En esta sección, hemos definido el método que ejecutará el código completo utilizando dos bucles anidados. Estos bucles finalizarán cuando las variables se establezcan en falso. De lo contrario, continuarán con el programa.
Ejemplo:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. En esta sección, crearemos el hilo para hacer clic con el mouse y luego iniciaremos el hilo.
Ejemplo:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. Es el último apartado donde definimos la función para el clic del teclado. Si se presiona alguna tecla, pasa como argumento en esta función y se verifica con diferentes casos.
Si es la tecla startStop, entonces el programa se iniciará o se detendrá. Si es la clave de terminación, entonces el programa finalizará.
Ejemplo:
def on_press(key): if key == startStopButton: if clickThread.running: clickThread.stopMouseclick() else: clickThread.startMouseclick() elif key == terminateButton: clickThread.exitScript() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Ejemplo completo:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode delayTime = 0.001 buttonDirection = Button.right startStopButton = KeyCode(char='s') terminateButton = KeyCode(char='x') class ClickTheMouse(threading.Thread): def __init__(self, delayTime, buttonDirection): super(ClickTheMouse, self).__init__() self.delayTime = delayTime self.buttonDirection = buttonDirection self.running = False self.program_running = True def startMouseclick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1) mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start() def on_press(key): if key == startStopButton: if clickThread.running: clickThread.stopMouseClick() else: clickThread.startMouseclick() elif key == terminateButton: clickThread.exitScript() listener.stop() with Listener(on_press=on_press) as listener: listener.join()
Explicación:
En el código anterior, hemos inicializado las teclas de inicio y parada como 's' y la tecla de finalización como 'x'. Cuando ejecutamos el script de Python y ingresamos 's', automáticamente, cada vez que movemos el mouse en la pantalla, se hará clic derecho con un retraso de 0,001 segundos o un milisegundo.
Podemos cambiar la funcionalidad del clic del mouse en la sección 2, donde podemos usar el atributo Button.left o Button.center para cambiar la dirección del clic del mouse.
Si queremos ver el clic del mouse fácilmente, podemos cambiar el tiempo de retardo a mayor para ver el clic real. En este código, cuando no movemos el cursor del mouse en la pantalla, no hará clic. Funcionará sólo cuando movamos el cursor en la pantalla.