一次两个库

时间:2018-11-14 17:16:17

标签: python

伙计们,我正在尝试制作类似键盘记录器的程序,我目前正在使用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()

3 个答案:

答案 0 :(得分:1)

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

from pynput.keyboard import Key, Listener as keyListener
from pynput.mouse import Listener as mouseListener

当您需要从鼠标库中使用Listener时,只需使用mouseListner,而当您需要从键盘库中使用Listener时,只需使用keyListner

希望这会有所帮助!

答案 1 :(得分:1)

您将两次导入名称Listener。第二次,它将覆盖以前的侦听器。我建议做这样的事情:

from pynput.keyboard import Listener as KeyboardListener
from pynput.keyboard import Key
from pynput.mouse import Listener as MouseListener

您将不得不使用MouseListenerKeyboardListener来引用它们。

答案 2 :(得分:0)

from pynput.keyboard import Key, Listener
from pynput.mouse import Listener

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

from pynput import keyboard, mouse

现在,您必须参考keyboard.Listenermouse.Listener。您还需要执行keyboard.Key而不只是Key