Как я могу заставить автокликер запускаться при физическом нажатии мыши и останавливаться при отпускании, когда его смодPython

Программы на Python
Ответить
Anonymous
 Как я могу заставить автокликер запускаться при физическом нажатии мыши и останавливаться при отпускании, когда его смод

Сообщение Anonymous »

Я хочу создать автокликер со следующими требованиями:
  • Поддержка левой и правой кнопок мыши: автокликер запускается при нажатии соответствующей кнопки мыши.
  • Остается активным, пока соответствующая кнопка удерживается нажатой, и немедленно останавливается при ее отпускании.
  • Независимо настраиваемый CPS (кликов в секунду) для левой и правой кнопок.
  • Программа должна завершать работу при нажатии клавиши alt.
Итак, сначала я запрограммировал программу, которая может определять, активны кнопки или нет.

Код: Выделить всё

from pynput import mouse, keyboard

def on_click(x, y, button, pressed):
if pressed:
if button == mouse.Button.left:
print(f"Linksklick gedrückt bei ({x}, {y})")
elif button == mouse.Button.right:
print(f"Rechtsklick gedrückt bei ({x}, {y})")
else:
print(f"{button} gedrückt bei ({x}, {y})")
else:
if button == mouse.Button.left:
print("Linksklick losgelassen")
elif button == mouse.Button.right:
print("Rechtsklick losgelassen")

def on_press(key):

if key in (keyboard.Key.alt, keyboard.Key.alt_l, keyboard.Key.alt_r):
print("ALT gedrückt → Beende Listener")
return False

if __name__ == "__main__":
print("Starte Maus-Listener (ALT zum Beenden)...")

with keyboard.Listener(on_press=on_press) as key_listener:

with mouse.Listener(on_click=on_click) as mouse_listener:
mouse_listener.join()

key_listener.join()
Когда я попробовал интегрировать в программу функцию автокликера - где автокликер запускается при нажатии соответствующей левой или правой кнопки мыши и останавливается при ее отпускании - я заметил, что этот подход не работает должным образом.
Когда я нажимал кнопку мыши, автокликер активировался, но тут же снова деактивировался, хотя я все еще физически держал кнопку.
По прошествии времени я понял, в чем причина заключается в том, что автокликер отправляет в операционную систему собственные смоделированные события мыши ВНИЗ/ВВЕРХ. Эти смоделированные события переопределяют состояние физического нажатия кнопки мыши, поскольку ОС всегда доверяет самому последнему событию.
Мой вопрос: как я могу заставить это работать в соответствии с моими требованиями?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -on-releas
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»