首页 > 解决方案 > 鼠标拖动并使用 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()

标签: pythonglobal-variablesmousepynput

解决方案


推荐阅读