Шта је аутоматски кликер?
Ауто кликер је програм у коме се пише нека кодна скрипта, а на основу кода, ако неки корисник дефинише да се притисне тастер, онда ће се миш аутоматски кликнути. У Питхон-у можемо да направимо пројекат ауто кликера користећи пинпут модул који се може инсталирати пип командом.
Код аутоматског кликера можемо поделити на следеће кораке:
1. Увоз потребних модула
Увешћемо модул времена и нити, а увешћемо модул Буттон, Цонтроллер из подмодула миша пинпута. На исти начин ћемо увести модуле Листенер и Кеицоде из подмодула тастатуре пинпут.
Пример:
граница користећи цсс
import time import threading from pynput.mouse import Button, Controller from pynput.keyboard import Listener, KeyCode
2. Иницијализација променљивих
У овом одељку ћемо иницијализовати четири варијабле које су веома корисне за извршавање програма.
Пример:
buttonDirection= Button.right delayTime= 0.001 startStopButton = KeyCode(char='s') terminateButton= KeyCode(char='x')
3. Креирање класе
У овом одељку ћемо креирати класу која проширује класу нити да провери да ли је клик мишем извршен или не.
Пример:
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. У овом одељку ћемо дефинисати неке методе за контролу кликова мишем користећи нити споља.
Пример:
def startMouseClick(self): self.running = True def stopMouseClick(self): self.running = False def exitScript(self): self.stopMouseClick() self.program_running = False
5. У овом одељку смо дефинисали методу која ће извршавати комплетан код користећи две угнежђене петље. Ове петље ће бити прекинуте када се променљиве поставе на фалсе. У супротном, наставиће са програмом.
Пример:
def run(self): while self.program_running: while self.running: mouse.click(self.buttonDirection) time.sleep(self.delayTime) time.sleep(0.1)
6. У овом одељку ћемо креирати нит за клик мишем, а затим ћемо покренути нит.
Пример:
mouse = Controller() clickThread = ClickTheMouse(delayTime, buttonDirection) clickThread.start()
7. То је последњи одељак где дефинишемо функцију за клик на тастатури. Ако се притисне било који тастер, он пролази као аргумент у овој функцији и проверава са различитим случајевима.
Ако је то тастер стартСтоп, онда ће програм бити покренут или заустављен. Ако је то кључ за завршетак, онда ће програм бити прекинут.
Пример:
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()
Комплетан пример:
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()
Објашњење:
У горњем коду смо иницијализовали тастере за почетак и заустављање као 'с' и кључ за завршетак као 'к'. Када покренемо питхон скрипту и ако унесемо 'с', онда ће аутоматски, кад год померимо миш по екрану, кликнути десним тастером миша са закашњењем од 0,001 секунде или једне милисекунде.
Функционалност клика мишем можемо да променимо у одељку 2, где можемо да користимо атрибут Буттон.лефт или Буттон.центер да променимо смер клика миша.
Ако желимо да лако видимо клик миша, онда можемо да променимо време кашњења на веће да бисмо видели стварни клик. У овом коду, када не померамо курсор миша по екрану, онда он неће кликнути. Радиће само када померимо курсор на екрану.