Mikä on Auto Clicker?
Auto Clicker on ohjelma, jossa kirjoitetaan jokin koodiskripti ja koodin perusteella, jos joku käyttäjä määrittelee, että näppäintä painetaan, hiirtä napsautetaan automaattisesti. Pythonissa voimme tehdä automaattisen napsautusprojektin käyttämällä pynput-moduulia, joka voidaan asentaa pip-komennolla.
Voimme jakaa automaattisen napsautuskoodin seuraaviin vaiheisiin:
1. Tuodaan tarvittavat moduulit
Tuomme aika- ja säikemoduulin ja tuomme pynputin hiiren alimoduulista Button, Controller -moduulin. Samalla tavalla tuomme Listener- ja Keycode-moduulit pynputin näppäimistöalimoduulista.
Esimerkki:
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Muuttujien alustaminen
Tässä osiossa alustamme neljä muuttujaa, jotka ovat erittäin hyödyllisiä ohjelman suorittamisen kannalta.
Esimerkki:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Luokan luominen
Tässä osiossa luomme luokan, joka laajentaa säikeen luokkaa tarkistaakseen, onko hiiren napsautus suoritettu vai ei.
Esimerkki:
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. Tässä osiossa määrittelemme joitain menetelmiä ohjata hiiren napsautuksia käyttämällä säikeitä ulkoisesti.
Esimerkki:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. Tässä osiossa olemme määrittäneet menetelmän, joka suorittaa täydellisen koodin käyttämällä kahta sisäkkäistä silmukkaa. Nämä silmukat päätetään, kun muuttujat on asetettu epätosi. Muuten he jatkavat ohjelmaa.
Esimerkki:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. Tässä osiossa luomme ketjun hiiren napsautusta varten ja sitten aloitamme ketjun.
mikä on mac os
Esimerkki:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. Se on viimeinen osa, jossa määritämme näppäimistön napsautuksen toiminnon. Jos mitä tahansa näppäintä painetaan, se kulkee argumenttina tässä funktiossa ja tarkistaa eri tapauksilla.
Jos se on startStop-näppäin, ohjelma käynnistetään tai pysäytetään. Jos se on lopetusavain, ohjelma lopetetaan.
Esimerkki:
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()
Täydellinen esimerkki:
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()
Selitys:
Yllä olevassa koodissa olemme alustaneet aloitus- ja lopetusnäppäimet 's':ksi ja lopetusnäppäimet 'x':ksi. Kun suoritamme python-komentosarjan ja jos kirjoitamme 's', niin automaattisesti, aina kun liikutamme hiirtä näytöllä, sitä napsautetaan hiiren kakkospainikkeella 0,001 sekunnin tai yhden millisekunnin viiveellä.
Voimme muuttaa hiiren napsautuksen toimivuutta osiossa 2, jossa voimme käyttää joko Button.left- tai Button.center-attribuuttia muuttaaksesi hiiren napsautussuuntaa.
Jos haluamme nähdä hiiren napsautuksen helposti, voimme muuttaa viiveaikaa suuremmaksi nähdäksemme todellisen klikkauksen. Tässä koodissa, kun emme siirrä hiiren osoitinta näytöllä, se ei napsauta. Se toimii vain, kun siirrämme kohdistinta näytöllä.