Какво е Auto clicker?
Auto clicker е програма, в която се пише някакъв кодов скрипт и въз основа на кода, ако някой потребител дефинира натискане на клавиш, тогава мишката ще бъде щракната автоматично. В Python можем да направим проект за автоматично кликване с помощта на модул pynput, който може да бъде инсталиран чрез команда pip.
Можем да разделим кода на автоматичния кликер на следните стъпки:
1. Импортиране на необходимите модули
Ще импортираме модула за време и нишка и ще импортираме модула за бутон, контролер от подмодула на мишката на pynput. По същия начин ще импортираме модулите Listener и Keycode от подмодула на клавиатурата на pynput.
Пример:
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. В този раздел сме дефинирали метода, който ще изпълнява пълния код, използвайки два вложени цикъла. Тези цикли ще бъдат прекратени, когато променливите са зададени на false. В противен случай те ще продължат програмата.
Пример:
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. Това е последният раздел, в който дефинираме функцията за щракване на клавиатурата. Ако някой клавиш бъде натиснат, той преминава като аргумент в тази функция и проверява с различни регистри.
10 от 100.00
Ако това е клавишът startStop, тогава програмата ще бъде стартирана или спряна. Ако това е ключът за прекратяване, тогава програмата ще бъде прекратена.
Пример:
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()
Обяснение:
В горния код инициализирахме клавишите за стартиране и спиране като 's' и клавиша за прекратяване като 'x'. Когато стартираме скрипта на Python и ако въведем 's', тогава автоматично, когато преместим мишката върху екрана, ще бъде щракнат с десен бутон със закъснение от 0,001 секунди или една милисекунда.
Можем да променим функционалността на щракването с мишката в раздел 2, където можем да използваме атрибут Button.left или Button.center, за да променим посоката на щракване на мишката.
Ако искаме да видим щракването на мишката лесно, тогава можем да променим delayTime на по-високо, за да видим действителното щракване. В този код, когато не преместим курсора на мишката върху екрана, той няма да щракне. Ще работи само когато преместим курсора на екрана.