鼠标点击滚动

Mouse click on scrolling

所以我正在尝试编写一个 python 程序,当我用鼠标滚动时模拟鼠标右键单击。我尝试使用 pynput,这就是我所拥有的:

from pynput.mouse import Button, Controller, Listener

mouse = Controller()

def on_scroll(x, y, dx, dy):
    mouse.click(Button.left)
    print('Scrolled {0}'.format(
        (x, y)))


with Listener(
        on_scroll=on_scroll) as listener:
    listener.join()

每次我 运行 这个程序和滚动,我的电脑开始滞后,我的鼠标也是如此。然后,由于延迟,我不得不强制关闭计算机。我该怎么办?

提前致谢!

docs 提到您不应在滚动代码中放置阻止操作。由于我可以重现您的问题,因此我假设 mouse.click(Button.left) 是一个阻止操作。

可以使用以下方式显示:

from pynput.mouse import Controller, Events, Button

mouse = Controller()

if __name__ == '__main__':
    with Events() as events:
        for event in events:
            if isinstance(event, Events.Scroll):
                print(f'Scrolling event: {event}')
                mouse.click(Button.left)
            print(event)

这将 运行 正确地进行鼠标移动,直到您开始滚动,然后它会陷入无限循环。我会尝试看看是否有替代解决方案并将其编辑为答案,但目前我还没有找到。

编辑

我现在还没有找到任何解决方案, post 中提到问题可能是 OS 具体的。我可以在 Windows 上复制你的声明,所以你可能想在 pynput 他们的包裹页面上创建一个问题。