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

时间:2019-01-28 00:32:47

标签: python keyboard 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的范围?

2 个答案:

答案 0 :(得分:0)

set prevent = True like

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

答案 1 :(得分:0)

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

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

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