鼠标点击滚动
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
他们的包裹页面上创建一个问题。
所以我正在尝试编写一个 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)
这将 运行 正确地进行鼠标移动,直到您开始滚动,然后它会陷入无限循环。我会尝试看看是否有替代解决方案并将其编辑为答案,但目前我还没有找到。
编辑
我现在还没有找到任何解决方案,pynput
他们的包裹页面上创建一个问题。