Kaj je samodejni kliker?
Samodejni kliker je program, v katerem je napisan kodni skript in na podlagi kode, če uporabnik definira, da je pritisnjena tipka, bo miška samodejno kliknjena. V Pythonu lahko naredimo projekt samodejnega klikanja z uporabo modula pynput, ki ga je mogoče namestiti z ukazom pip.
Kodo samodejnega klikerja lahko razdelimo na naslednje korake:
1. Uvoz zahtevanih modulov
Uvozili bomo modul časa in niti ter uvozili modul gumba, krmilnika iz podmodula miške pynput. Na enak način bomo uvozili modula Listener in Keycode iz podmodula tipkovnice pynput.
primer:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Inicializacija spremenljivk
V tem razdelku bomo inicializirali štiri spremenljivke, ki so zelo uporabne za izvajanje programa.
primer:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Ustvarjanje razreda
V tem razdelku bomo ustvarili razred, ki razširi razred niti, da preveri, ali je bil klik miške izveden ali ne.
primer:
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. V tem razdelku bomo definirali nekaj metod za nadzor klikov miške z uporabo zunanjih niti.
primer:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. V tem razdelku smo definirali metodo, ki bo izvajala celotno kodo z uporabo dveh ugnezdenih zank. Te zanke bodo prekinjene, ko bodo spremenljivke nastavljene na false. V nasprotnem primeru bodo program nadaljevali.
primer:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. V tem razdelku bomo ustvarili nit za klik z miško in nato zagnali nit.
primer:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. To je zadnji razdelek, kjer definiramo funkcijo za klik tipkovnice. Če je katera koli tipka pritisnjena, gre kot argument v tej funkciji in preverja z različnimi velikimi in malimi črkami.
Če je tipka startStop, se bo program zagnal ali ustavil. Če je ključ za zaključek, bo program prekinjen.
primer:
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()
Celoten primer:
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()
Pojasnilo:
V zgornji kodi smo inicializirali tipki za začetek in zaustavitev kot 's' in ključ za zaključek kot 'x'. Ko zaženemo skript python in vnesemo 's', bo avtomatsko, ko premaknemo miško na zaslonu, kliknjena z desno miškino tipko z zamikom 0,001 sekunde ali ene milisekunde.
poimenovanje java konvencij
Funkcionalnost klika z miško lahko spremenimo v razdelku 2, kjer lahko uporabimo atribut Button.left ali Button.center, da spremenimo smer klika miške.
Če želimo enostavno videti klik miške, lahko spremenimo delayTime na višje, da vidimo dejanski klik. V tej kodi, ko ne premaknemo kazalca miške na zaslonu, potem ne bo kliknil. Delovalo bo le, ko premaknemo kazalec na zaslonu.