一次两个库

我正在尝试制作类似键盘记录器的东西,我目前正在使用 pynput 库,但问题是程序总是执行我导入的最后一件事,例如,如果我首先导入鼠标侦听器,它不会捕获键盘或其他有没有办法可以同时使用两个库?


from pynput.keyboard import Key, Listener

from pynput.mouse import Listener



def 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 released

with 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()


回首忆惘然
浏览 155回答 3
3回答

红糖糍粑

您正在导入名称Listener两次。第二次,它会覆盖之前的 Listener。我建议做这样的事情:from pynput.keyboard import Listener as KeyboardListenerfrom pynput.keyboard import Keyfrom pynput.mouse import Listener as MouseListener您将不得不使用MouseListener并KeyboardListener参考它们。

墨色风雨

在 Python 中,您可以导入如下内容:from pynput.keyboard import Key, Listener as keyListenerfrom pynput.mouse import Listener as mouseListener当需要Listener从鼠标库使用mouseListner时,直接使用,当您需要Listener从键盘库使用时,直接使用keyListner。

胡子哥哥

from pynput.keyboard import Key, Listenerfrom pynput.mouse import Listener第二行覆盖Listener全局命名空间中的名称。解决此问题的一种方法是from pynput import keyboard, mouse现在您必须参考keyboard.Listener或mouse.Listener。您还需要做keyboard.Key而不仅仅是Key.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python