logo

Kuinka tehdä Python-automaattinapsautus

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.

    painikkeen suunta: Tämä muuttuja päättää, mitä painikkeen puolta haluamme napsauttaa (oikeaa, vasenta vai keskimmäistä).viiveaika: Tämä muuttuja määrittää kahden peräkkäisen napsautuksen välisen ajan.startStopButton: Tämä muuttuja määrittää, mitä näppäintä tai painiketta käytetään automaattisen napsautusprojektin käynnistämiseen ja pysäyttämiseen.lopetuspainike: Tämä muuttuja määrittää painikkeen, jota käytetään ohjelman lopettamiseen.

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ä.