伙计们,我正在尝试制作类似键盘记录器的程序,我目前正在使用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()
答案 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
您将不得不使用MouseListener
和KeyboardListener
来引用它们。
答案 2 :(得分:0)
from pynput.keyboard import Key, Listener
from pynput.mouse import Listener
第二行覆盖全局名称空间中的名称Listener
。解决此问题的一种方法是
from pynput import keyboard, mouse
现在,您必须参考keyboard.Listener
或mouse.Listener
。您还需要执行keyboard.Key
而不只是Key
。