Como fazer um clicker automático em Python?
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
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.
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:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva