Neste artigo, veremos como criar um auto-clicker usando Python. O código obterá entrada do teclado quando o usuário clicar na tecla iniciar e encerrar o auto clicker quando o usuário clicar na tecla de saída, o auto clicker começa a clicar onde quer que o ponteiro seja colocado na tela. Vamos usar o módulo pynput aqui. 

O que é Auto Clicker?

Auto-Clicker é um script onde você pode controlar automaticamente o mouse e o teclado quantas vezes quiser. Ele é controlado por meio de chaves definidas pelo usuário. Funciona em várias plataformas como Windows, Mac e Linux. O clicker automático está presente no módulo pywin32.

Abordagem:

Neste projeto, usaremos um módulo pynput de plataforma cruzada para controlar o mouse e monitorar o teclado ao mesmo tempo para criar um clique automático simples. Para verificar os eventos do mouse, instalaremos o módulo pynput (usado para controlar o mouse) para executar, pip install pynput no cmd. 

Observação: se você não souber como configurar o pacote python-pip em seu sistema, clique aqui

Instalação do módulo pynput

Verifique se o módulo pynput foi instalado com sucesso em seu ambiente de trabalho para isso, abra o IDLE no sistema que é cmd ou Python Shell. Execute o comando import pynput, após executá-lo a saída não deve dar nenhum erro, o que significa que seu módulo foi instalado com sucesso. 



Verificando a instalação do módulo

Implementação:

Agora vamos prosseguir com o código necessário para construir um auto-clicker usando Python. Siga as etapas abaixo para criar um auto-clicker:

Etapa 1: Importar tempo e threading e, em seguida, importar botão e controlador do módulo pynput.mouse . Importar Listener e KeyCode de pynput.keyboard.

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

Etapa 2: crie quatro variáveis ​​conforme mencionado abaixo,

  • atraso : atraso entre cada clique (em segundos)
  • botão : o botão é usado para clicar em qualquer direção desejada.  Button.left | Button.middle | Button.right
  • start_stop_key : a chave usada para iniciar e parar o clique enquanto você executa o programa para executar o auto clicker. Deve ser de uma classe de chave ou definido usando KeyCode .
  • exit_key : a chave usada para encerrar o auto clicker que está sendo executado. Deve ser da classe de chave ou definido usando KeyCode .
delay = 0.001
button = Button.right 
start_stop_key = KeyCode(char='a') 
stop_key = KeyCode(char='b') 

Etapa 3: Crie uma classe que estende threading.Thread. Passe delay e botão para a classe que possui dois flags para verificar se o programa é executado ou não.

class ClickMouse(threading.Thread): 
    
  
  
    def __init__(self, delay, button): 
        super(ClickMouse, self).__init__() 
        self.delay = delay 
        self.button = button 
        self.running = False
        self.program_running = True

Etapa 4: adicionar métodos para controlar os threads externamente.



def start_clicking(self): 
        self.running = True
  
def stop_clicking(self): 
        self.running = False
  
def exit(self): 
        self.stop_clicking() 
        self.program_running = False

 

Etapa 5: Um método é criado quando o thread é iniciado, o program_running é executado em loop até que o valor se torne true e também cria outro loop dentro do loop existente onde verifica se running está definido como true ou não. Caso estejamos dentro de ambos os loops, ele irá clicar no botão set e dormir pelo atraso definido.

def run(self): 
    while self.program_running: 
        while self.running: 
            mouse.click(self.button) 
            time.sleep(self.delay) 
        time.sleep(0.1)

Etapa 6: Criar uma instância para o controlador do mouse e, em seguida, criar o thread ClickMouse . Inicie a instância para mover para o loop dentro do método run.

mouse = Controller() 
click_thread = ClickMouse(delay, button) 
click_thread.start() 

 

Etapa 7: Crie um método on_press que pega uma tecla como argumento e configura um ouvinte de teclado. A start_stop_key corresponde a uma chave de início (a) quando é executada. Em seguida, o clique deve ser encerrado quando o flag de execução é definido como True no thread. O método de saída é chamado no método se a tecla de saída (b) for executada e parar o ouvinte.

  
  
def on_press(key): 
  
  
  
    if key == start_stop_key: 
        if click_thread.running: 
            click_thread.stop_clicking() 
        else: 
            click_thread.start_clicking() 
  
    
    
    elif key == stop_key: 
        click_thread.exit() 
        listener.stop() 
  
  
with Listener(on_press=on_press) as listener: 
    listener.join() 

Depois que o código é executado, podemos ver na saída conforme mostrado abaixo, ele mostra o número de cliques que o auto-clicker fez depois que o código foi implementado. É compatível com Windows, Mac e Linux. Auto-Clicker é um software útil para os sistemas, pois permite economizar uma quantidade razoável de tempo gasto em cliques repetidos. 



Abaixo está o programa completo:

import time 
import threading 
from pynput.mouse import Button, Controller 
from pynput.keyboard import Listener, KeyCode 
  
delay = 0.001
button = Button.right 
start_stop_key = KeyCode(char='a') 
stop_key = KeyCode(char='b') 
class ClickMouse(threading.Thread): 
    
  
  
    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
  
    
    
    
    
    
    def run(self): 
        while self.program_running: 
            while self.running: 
                mouse.click(self.button) 
                time.sleep(self.delay) 
            time.sleep(0.1) 
  
  
mouse = Controller() 
click_thread = ClickMouse(delay, button) 
click_thread.start() 
  
def on_press(key): 
    
  
  
    if key == start_stop_key: 
        if click_thread.running: 
            click_thread.stop_clicking() 
        else: 
            click_thread.start_clicking() 
              
    
    
    elif key == stop_key: 
        click_thread.exit() 
        listener.stop() 
  
  
with Listener(on_press=on_press) as listener: 
    listener.join() 

Agora vamos executar o programa python que escrevemos e então pressionar as teclas start (a) e stop (a) para iniciar o auto clicker. 

Resultado: