Il python è uno dei linguaggi di programmazione più versatili che io conosca. Ancora usatissimo in molti settori. Semplicità disarmante e flessibilità estrema, in un unico linguaggio.

Oggi presento un piccolo progetto dalle molteplici potenzialità. Si tratta di un bot clicker universale, dove con universale si intende il poterlo utilizzare in un infinito numero di scenari e situazioni. Esso infatti simula un numero arbitrario di click in qualsiasi posizione dello schermo, ad una cadenza prestabilita di secondi. Qualsiasi sistema remoto farà davvero difficoltà a capire che non siamo noi davanti allo schermo ad effettuare i click.

(chiaramente l’uso di captcha da parte di un sistema remoto, inibisce in parte il funzionamento di tale applicativo; lo scopo per cui è pensato esula implementazioni future con il riconoscimento captcha)

Versione python utilizzata 3.x e superiori.

Le librerie necessarie al funzionamento sono pywin32 scaricabile da questo link, scegliendo la Build più recente e l’exe da installare a seconda della versione di Python che avete installato sul vostro computer.

import win32api, win32con
import time
import winsound
import win32com.client
#import focus #si puo' pensare in implementazioni future di effettuare anche il focus sulla finestra prima del click effettivo
 
def click(x,y): #FUNZIONE CLICK PER SPOSTARE IL CURSORE SULLO SCHERMO, nella posizione x,y
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
 
def registra_pos(z):
    print("Posiziona il cursore per click numero: ",z)
    time.sleep(4) # sleep di 4 secondi
    (x,y) = win32api.GetCursorPos() #posizione cursore
    Freq = 2500 # Set Frequency To 2500 Hertz
    Dur = 1000 # Set Duration To 1000 ms == 1 second
    winsound.Beep(Freq,Dur)
    click(x,y)
    return (x,y)
 
 
# REGISTRIAMO LA POSIZIONE DEI VARI CLICK
 
sec = int(input("Inserisci quanti secondi fra 1 click e l'altro: "))
 
n_click = int(input("Inserisci il numero di click in totale: "))
 
lista = list() # conterra' le coordinate del cursore
for i in range(n_click):
    lista.append(registra_pos(i))
 
print("\n\n Configurazione TERMINATA, bot in partenza.. attiva la finestra bersaglio.")
time.sleep(4)
#focus.shell.AppActivate('YouTube - Google Chrome') #arbitrariamente attiviamo la finestra bersaglio
 
# IL BOT ESEGUE I CLICK NELLE POSIZIONI REGISTRATE:
 
i = 0
while True:
    x,y = lista[i]
    click(x,y)
    print("click numero",i,"su",x,y)
    time.sleep(sec)
    i = (i + 1) % len(lista)

Dopo aver avviato lo script, esso chiede il numero di secondi fra un click e il prossimo, e il numero di click totali che dovrà effettuare in loop.
Dopo aver inserito i due valori, prosegue per registrare le coordinate del click sullo schermo, basterà posizionare il cursore dove vogliamo che il click venga effettuato e lo script lo registrerà automaticamente, avvisandoci con un segnale acustico quando la registrazione della posizione del cursore sarà effettuata. Completata la fase di settaggio iniziale, il bot procederà in loop alla simulazione dei click registrati.

Per qualsiasi informazione, suggerimento o consiglio, commentate pure.