为了账号安全,请及时绑定邮箱和手机立即绑定

一次两个库

一次两个库

回首忆惘然 2021-08-17 18:42:44
我正在尝试制作类似键盘记录器的东西,我目前正在使用 pynput 库,但问题是程序总是执行我导入的最后一件事,例如,如果我首先导入鼠标侦听器,它不会捕获键盘或其他有没有办法可以同时使用两个库?from pynput.keyboard import Key, Listenerfrom pynput.mouse import Listenerdef on_press(key):    print('{0} pressed'.format(        key))def on_release(key):    print('{0} release'.format(        key))def on_move(x, y):    print('Pointer moved to {0}'.format(        (x, y)))def on_click(x, y, button, pressed):    print('{0} at {1}'.format(        'Pressed' if pressed else 'Released',        (x, y)))def on_scroll(x, y, dx, dy):    print('Scrolled {0}'.format(        (x, y))),# Collect events until releasedwith Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll, on_press=on_press, on_release=on_release) as listener:    listener.join()
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您正在导入名称Listener两次。第二次,它会覆盖之前的 Listener。我建议做这样的事情:


from pynput.keyboard import Listener as KeyboardListener

from pynput.keyboard import Key

from pynput.mouse import Listener as MouseListener

您将不得不使用MouseListener并KeyboardListener参考它们。


查看完整回答
反对 回复 2021-08-17
?
墨色风雨

TA贡献1853条经验 获得超6个赞

在 Python 中,您可以导入如下内容:


from pynput.keyboard import Key, Listener as keyListener

from pynput.mouse import Listener as mouseListener

当需要Listener从鼠标库使用mouseListner时,直接使用,当您需要Listener从键盘库使用时,直接使用keyListner。


查看完整回答
反对 回复 2021-08-17
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

from pynput.keyboard import Key, Listener

from pynput.mouse import Listener

第二行覆盖Listener全局命名空间中的名称。解决此问题的一种方法是


from pynput import keyboard, mouse

现在您必须参考keyboard.Listener或mouse.Listener。您还需要做keyboard.Key而不仅仅是Key.


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信