logo

Kako napraviti Python auto kliker

Što je Auto kliker?

Auto clicker je program u kojem se napiše neka skripta koda, a na temelju koda, ako neki korisnik definira da se pritisne tipka, tada će miš automatski biti kliknut. U Pythonu možemo napraviti projekt automatskog klikera pomoću modula pynput koji se može instalirati naredbom pip.

Kôd automatskog klikera možemo podijeliti u sljedeće korake:

1. Uvoz potrebnih modula

Uvest ćemo modul za vrijeme i nit te ćemo uvesti modul Gumb, Kontroler iz podmodula miša pinputa. Na isti način ćemo uvesti module Listener i Keycode iz pynputovog podmodula tipkovnice.

Primjer:

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

2. Inicijaliziranje varijabli

U ovom ćemo odjeljku inicijalizirati četiri varijable koje su vrlo korisne za izvođenje programa.

    gumbSmjer: Ova varijabla će odlučiti na koju stranu gumba želimo kliknuti (desno, lijevo ili sredina).vrijeme odgode: Ova varijabla definira vrijeme između dva uzastopna klika.StartStopButton: Ova varijabla definira koja će se tipka ili gumb koristiti za pokretanje i zaustavljanje projekta automatskog klikera.terminateButton: Ova varijabla definira gumb koji će se koristiti za prekid programa.

Primjer:

 buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x') 

3. Izrada klase

U ovom odjeljku stvorit ćemo klasu koja proširuje klasu niti da provjeri je li klik mišem izvršen ili ne.

tko je freddie mercury

Primjer:

 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. U ovom ćemo odjeljku definirati neke metode za kontrolu klikova mišem korištenjem niti izvana.

Primjer:

 def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False 

5. U ovom odjeljku definirali smo metodu koja će izvršavati cijeli kod pomoću dvije ugniježđene petlje. Ove petlje će se prekinuti kada se varijable postave na false. U suprotnom će nastaviti s programom.

Primjer:

 def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1) 

6. U ovom odjeljku stvorit ćemo nit za klik mišem, a zatim ćemo pokrenuti nit.

Primjer:

 mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start() 

7. To je posljednji odjeljak u kojem definiramo funkciju za klik tipkovnice. Ako se pritisne bilo koja tipka, ona prolazi kao argument u ovoj funkciji i provjerava s različitim slučajevima.

Ako je tipka startStop, tada će se program pokrenuti ili zaustaviti. Ako je to ključ za završetak, tada će program biti prekinut.

Primjer:

 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() 

Kompletan primjer:

 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() 

Obrazloženje:

U gornjem kodu inicijalizirali smo tipke za pokretanje i zaustavljanje kao 's', a tipku za završetak kao 'x'. Kada pokrenemo python skriptu i ako unesemo 's', tada će automatski, kad god pomaknemo miš po ekranu, kliknuti desnom tipkom miša sa zakašnjenjem od 0,001 sekunde ili jedne milisekunde.

Možemo promijeniti funkcionalnost klika mišem u odjeljku 2, gdje možemo koristiti atribut Button.left ili Button.center za promjenu smjera klika mišem.

Ako želimo vidjeti klik miša lako, tada možemo promijeniti vrijeme kašnjenja na više da bismo vidjeli stvarni klik. U ovom kodu, kada ne pomičemo kursor miša na ekranu, on neće kliknuti. Radit će samo kada pomaknemo kursor na ekranu.