перетаскивание мыши и переключение с помощью pynput

#python #global-variables #mouse #pynput

Вопрос:

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

Я думаю, что у меня проблема с глобальными переменными и моими циклами. Я занимаюсь этим уже несколько часов и не могу найти решение.

Я хотел бы реализовать клавишу F8 для включения и выключения. Если это невозможно, используйте одну и ту же клавишу для переключения F7 для включения и F8 для выключения.

Вот мой текущий код:

 from pynput import mouse
from pynput.mouse import Button, Controller
import threading
import win32api, win32con
import time

running = False

print(running)
def process():
    print('start')
    while running:
        win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, -1, 2)
        time.sleep(20 / 950)
    print('stop')

def on_click(x, y, button, pressed):
    global running  # to assing value to global variable (instead of local variable)

    if button == mouse.Button.left:
        if pressed:
            if not running:
                running = True
                threading.Thread(target=process).start()
        else:
            running = False

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

 

Комментарии:

1. Пожалуйста, поделитесь ошибкой, с которой вы столкнулись, и любой обратной связью.

2. Никаких ошибок в коде, когда я добавляю оператор if при просьбе изменить переменную running = False, это не работает. Опять же, я пытаюсь включить переключатель, который будет включать и отключать активацию программы.