gpt4 book ai didi

python - 编写了一个按键监听器,但它执行了两次

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:24 25 4
gpt4 key购买 nike

我用 pynput 编写了一个标准的按键监听器,但是当使用 keyboard.type 时,按键似乎被释放了两次。

from pynput.keyboard import Controller, Listener

keyboard = Controller()

def on_release(key):
print('key {} released'.format(key))
if key.char == 'a':
keyboard.type('b')

with Listener(on_release=on_release) as listener:
listener.join()

# Pressing 'a' yields:
#
# key u'a' released
# key u'b' released
# key u'b' released

按键似乎不是按下了两次,而是松开了两次。这是预期的行为吗?如果不是,应该怎样做才能避免这种情况?

最佳答案

这是pynput中的一个错误。

正如您所注意到的,事件可以从系统以及调用 Controller 时到达 Listener。后者仅适用于 Xorgwin32,因为它们不会将合成事件传播给监听器。

或者我是这么想的。事实证明,在 win32 上,这只适用于鼠标事件;键盘事件似乎正常传播。无论如何,我已经提出了一个建议的解决方案here .

如果您有机会测试它,我将不胜感激,否则我会在几天内将其合并到 master 中并制作一个新版本。我只能通过 VirtualBox 访问 win32,因此我希望进行更多裸机测试。

关于python - 编写了一个按键监听器,但它执行了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com