Как увеличить скорость (cps) нажатия в pyautogui?

pyautogui кликает максимум 10 cps. Я даже sleep убрал, а итог 10 cps, как увеличить хотя бы до 30 cps?

import pyautogui
import keyboard

clicking = False
def start_clicking():
    global clicking
    clicking = True
    print("Автокликер запущен. Нажмите 'X' для остановки.")
def stop_clicking():
    global clicking
    clicking = False
    print("Автокликер остановлен.")

keyboard.add_hotkey('z', start_clicking)
keyboard.add_hotkey('x', stop_clicking)
try:
    while True:
        if clicking:
            pyautogui.click()
except KeyboardInterrupt:
    print(" остановлен.")

Ответы (1 шт):

Автор решения: Fox Fox

Чтобы увеличить скорость кликов в pyautogui выше 10 кликов в секунду (cps), можно попробовать следующие подходы:

Оптимизация цикла: Вместо использования pyautogui.click() в цикле, можно использовать pyautogui.mouseDown() и pyautogui.mouseUp() для ручного управления кликами. Это может быть быстрее.

Использование многопоточности: Реализуйте многопоточность для обработки кликов параллельно. Это может помочь достичь более высокой скорости кликов.

Вот пример того, как можно использовать многопоточность для увеличения скорости кликов:

import pyautogui
import threading
import time

clicking = False

def start_clicking():
    global clicking
    clicking = True
    print("Автокликер запущен. Нажмите 'X' для остановки.")
    while clicking:
        pyautogui.click()

def stop_clicking():
    global clicking
    clicking = False
    print("Автокликер остановлен.")

def click_thread():
    while True:
        if clicking:
            pyautogui.click()

thread = threading.Thread(target=click_thread)
thread.start()

# Используйте модуль keyboard для запуска и остановки кликов
import keyboard
keyboard.add_hotkey('z', start_clicking)
keyboard.add_hotkey('x', stop_clicking)

try:
    while True:
        time.sleep(0.1)
except KeyboardInterrupt:
    print("Программа остановлена.")
→ Ссылка