logo

Hogyan készítsünk Python automatikus klikkelőt

Mi az az Auto Clicker?

Az Auto Clicker egy olyan program, ahol valamilyen kódszkriptet írnak, és a kód alapján, ha valamelyik felhasználó úgy definiálja, hogy lenyomnak egy billentyűt, akkor az egér automatikusan kattintásra kerül. A Pythonban egy pip paranccsal telepíthető pynput modul segítségével auto Clicker projektet készíthetünk.

Az automatikus kattintó kódot a következő lépésekre oszthatjuk fel:

1. A szükséges modulok importálása

A pynput egér almoduljából importáljuk az idő és szál modult, a Button, Controller modult pedig importáljuk. Ugyanígy importáljuk a Listener és Keycode modulokat a pynput billentyűzet almoduljából.

Példa:

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

2. A változók inicializálása

Ebben a részben négy olyan változót fogunk inicializálni, amelyek nagyon hasznosak a program végrehajtásához.

    gombDirect: Ez a változó dönti el, hogy a gomb melyik oldalára akarunk kattintani (jobbra, balra vagy középre).késési idő: Ez a változó határozza meg a két egymást követő kattintás közötti időt.startStopButton: Ez a változó határozza meg, hogy melyik billentyűt vagy gombot kell használni az automatikus klikkelő projekt indításához és leállításához.terminateButton: Ez a változó határozza meg azt a gombot, amely a program leállítására szolgál.

Példa:

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

3. Az osztály létrehozása

Ebben a részben létrehozzuk azt az osztályt, amely kiterjeszti a szál osztályát, hogy ellenőrizze, hogy az egérkattintás végrehajtódott-e vagy sem.

Példa:

 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. Ebben a részben meghatározunk néhány módszert az egérkattintások külső szálak segítségével történő szabályozására.

Példa:

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

5. Ebben a részben meghatároztuk azt a metódust, amely a teljes kódot két egymásba ágyazott hurok használatával hajtja végre. Ezek a hurkok megszakadnak, ha a változók értéke false. Ellenkező esetben folytatják a programot.

Példa:

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

6. Ebben a részben létrehozzuk az egérkattintáshoz szükséges szálat, majd elindítjuk a szálat.

Példa:

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

7. Ez az utolsó szakasz, ahol meghatározzuk a billentyűzet kattintásának funkcióját. Ha bármelyik billentyűt lenyomjuk, az argumentumként megy át ebben a függvényben, és különböző esetekkel ellenőrzi.

Ha ez a startStop gomb, akkor a program elindul vagy leáll. Ha ez a záró kulcs, akkor a program leáll.

Példa:

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

Teljes példa:

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

Magyarázat:

A fenti kódban a start és stop billentyűket 's'-ként, a befejező billentyűt pedig 'x'-ként inicializáltuk. Amikor lefuttatjuk a python szkriptet, és beírjuk az 's'-t, akkor automatikusan, valahányszor mozgatjuk az egeret a képernyőn, 0,001 másodperces vagy egy ezredmásodperces késleltetéssel a jobb gombbal kattintunk rá.

Az egérkattintás funkcióját a 2. részben módosíthatjuk, ahol a Button.left vagy a Button.center attribútum segítségével módosíthatjuk az egér kattintási irányát.

Ha könnyen szeretnénk látni az egérkattintást, akkor a delayTime értékét magasabbra állíthatjuk, hogy lássuk a tényleges kattintást. Ebben a kódban, ha nem mozgatjuk az egérkurzort a képernyőn, akkor nem fog kattintani. Csak akkor fog működni, ha mozgatjuk a kurzort a képernyőn.