Como fazer um clicker automático em Python
O que é o clicker automático?
Auto clicker é um programa onde algum script de código é escrito e, com base no código, se algum usuário definir que uma tecla é pressionada, o mouse será clicado automaticamente. Em Python, podemos fazer um projeto de clicker automático usando um módulo pynput que pode ser instalado pelo comando pip.
Podemos dividir o código do clicker automático nas seguintes etapas:
1. Importando módulos necessários
Importaremos o módulo de tempo e thread e importaremos o módulo Button, Controller do submódulo mouse do pynput. Da mesma forma, importaremos os módulos Listener e Keycode do submódulo de teclado do pynput.
Exemplo:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Inicializando as variáveis
Nesta seção inicializaremos quatro variáveis que são muito úteis para a execução do programa.
Exemplo:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Criando a classe
Nesta seção, criaremos a classe que estende a classe thread para verificar se o clique do mouse foi executado ou não.
Exemplo:
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. Nesta seção, definiremos alguns métodos para controlar os cliques do mouse usando threads externamente.
Exemplo:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. Nesta seção, definimos o método que executará o código completo usando dois loops aninhados. Esses loops serão encerrados quando as variáveis forem definidas como falsas. Caso contrário, eles continuarão o programa.
Exemplo:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. Nesta seção, criaremos o thread para clique do mouse e então iniciaremos o thread.
Exemplo:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. É a última seção onde definimos a função de clique do teclado. Se alguma tecla for pressionada, ela passa como argumento nesta função e verifica com diferentes casos.
Se for a tecla startStop, o programa será iniciado ou interrompido. Se for a chave de encerramento, o programa será encerrado.
Exemplo:
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()
Exemplo 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()
Explicação:
No código acima, inicializamos as teclas start e stop como 's' e a chave de término como 'x'. Quando executamos o script python e inserimos 's', automaticamente, sempre que movemos o mouse na tela, ele será clicado com o botão direito com um atraso de 0,001 segundos ou um milissegundo.
Podemos alterar a funcionalidade do clique do mouse na seção 2, onde podemos usar o atributo Button.left ou Button.center para alterar a direção do clique do mouse.
Se quisermos ver o clique do mouse facilmente, podemos alterar o delayTime para um valor mais alto para ver o clique real. Neste código, quando não movemos o cursor do mouse na tela, ele não clica. Funcionará apenas quando movermos o cursor na tela.