繁体   English   中英

一次两个库

[英]Two libs at once

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

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

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

当您需要使用鼠标库中的Listener ,请改用mouseListner而当您需要从键盘库中使用Listener ,请改用keyListner

希望这可以帮助!

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

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

您将必须使用MouseListenerKeyboardListener来引用它们。

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

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

from pynput import keyboard, mouse

现在,您必须引用keyboard.Listenermouse.Listener 您还需要执行keyboard.Key而不是Key

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM