python - 如何将参数传递给 pynput 监听器 on_press 函数?

标签 python pynput

我做了一个最小的 pynputleft 执行不同操作的程序和 right箭头键被按下。我想把它变成一个可以将不同值作为参数的函数。

这是一个没有函数且没有参数的最小工作示例:

from pynput.keyboard import Key, Listener 

def on_press(key):
    print('{0} pressed'.format(key))

    if key == Key.esc:
        return False
with Listener(on_press=on_press) as listener:
    listener.join()

它会打印您按下的键,并在您按下时退出 esc .

这就是我正在尝试实现的。请注意,它不起作用。只看逻辑。 left按下箭头,我希望程序执行取决于给定参数的命令。右箭头反之亦然。
from pynput.keyboard import Key, Listener

def on_press(key, left, right):
    if key == Key.left:
        print("{}'s key was pressed.".format(left))
    if key == Key.right:
        print("{}'s key was pressed.".format(right))

    if key == Key.esc:
        return False

def activate(name1, name2):
    with Listener(
            on_press=on_press(key, left=name1, right=name2)) as listener:
        listener.join()
        # when pressed, the program should print what on_press() is given as argument 

activate('Mark', 'John')

最佳答案

有点晚了,但我最近有一个类似的案例。
您可以使用:

def activate(name1, name2):
    with Listener(on_press=lambda event: on_press(event, left=name1, right=name2)) as listener:
        listener.join()

关于python - 如何将参数传递给 pynput 监听器 on_press 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801362/

相关文章:

python-3.x - Python pynput - 程序在启动时滞后

python - 如何在 Python 中伪造/代理一个类

python - 如何让 argparse 接受 "--"作为选项的参数?

python - elasticsearch 聚合哈希值的唯一条目并查找所有标签

python - 如何在函数运行期间忽略所有用户输入?

Python 键盘输入无法在网站上使用,而其他所有键都可以使用

python - pynput 键盘监听器自动重复

python - 计算引用具有 "nan"值的变量的 SymPy 表达式

python - 为什么 Django 1.9 将设置和 URL 中的 tuples () 替换为列表 []?

python - (pynput) 捕获键阻止将它们发送到其他应用程序