Python 3.x 鼠标点击滚动
因此,我试图编写一个python程序,每当我用鼠标滚动时,它都会模拟鼠标右键单击。我试着使用pynput,这就是我所拥有的:Python 3.x 鼠标点击滚动,python-3.x,pynput,Python 3.x,Pynput,因此,我试图编写一个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)))
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()
每次我运行这个程序并滚动时,我的电脑开始滞后,我的鼠标也开始滞后。然后,由于延迟,我不得不强制关闭我的计算机。我该怎么办
提前谢谢你 提到不应在滚动代码中设置阻止操作。因为我可以重现您的问题,所以我假设鼠标点击(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)
这将在鼠标移动时正确运行,直到您开始滚动,之后它将陷入无限循环。我会尝试看看是否有其他解决方案,并将其编辑为答案,但目前我还没有找到
编辑
我现在还没有找到任何解决方案,这篇文章提到这个问题可能是操作系统特有的。我可以在Windows上复制您的声明,因此您可能希望在
pynput
他们的软件包页面上创建一个问题。谢谢!就是这样:)正如解决方案中提到的,这是一次性修复。它将工作一次,然后程序挂起在鼠标上。单击。因此,我假设他们的代码中有一个更大的问题,那就是鼠标挂在Windows上。