4

好吧,在 pynput 我通过做类似的事情来捕获一个键(比如空格键):

from pynput import keyboard
from pynput.keyboard import Key

def on_press(key, ctrl):
    if key == Key.space:
        print('captured')


def main():
    with keyboard.Listener(on_press=on_press) as listener:
        listener.join()

但是我注意到这仍然会将原始密钥代码发送到其他应用程序。我希望使用 python 将键(组合)“绑定”到其他键(或更高级的操作),因此需要防止这种情况。

如何才能做到这一点?或者这超出了操作系统允许 python 做什么的范围?

4

2 回答 2

3

像这样设置抑制=真

def main():
    with keyboard.Listener(on_press=on_press, suppress=True) as listener:
        listener.join()
于 2019-05-25T12:35:36.607 回答
1

要防止在系统范围内(在 Windows 上)发送特定密钥,您可以使用 kwarg“win32_event_filter”。

lukakoczorowski 在https://github.com/moses-palmer/pynput/issues/170上的一个工作示例

构造一个适当的“win32_event_filter”也可以防止热键的传播。

于 2020-04-04T11:28:57.937 回答