Що таке 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. Створення класу
У цьому розділі ми створимо клас, який розширює клас потоку, щоб перевірити, чи було виконано клацання миші чи ні.
тип змінної Java
приклад:
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. Це останній розділ, де ми визначаємо функцію для клацання клавіатури. Якщо будь-яка клавіша натиснута, вона передається як аргумент у цю функцію та перевіряє різні регістри.
serial в postgres
Якщо це клавіша 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, щоб змінити напрямок клацання миші.
Якщо ми хочемо бачити клацання миші легким, ми можемо змінити час затримки на більше, щоб побачити фактичне клацання. У цьому коді, коли ми не рухаємо курсор миші на екрані, він не клацає. Він працюватиме лише тоді, коли ми пересуваємо курсор по екрану.