如何在 Python 中抑制来自键盘的命令?

Posted

技术标签:

【中文标题】如何在 Python 中抑制来自键盘的命令?【英文标题】:How can I suppress command from keyboard in Python? 【发布时间】:2020-05-12 08:34:05 【问题描述】:

除了手动执行反向操作之外,还有什么方法可以从键盘物理上抑制向上箭头的按下?

例如。向上箭头 -> 手动模拟向下按键

问题:我正在尝试自动完成一些单词并在物理上按下向上箭头,如果我正在执行相反的操作(模拟向下按键),它会在当前窗口中完全向左。我现在看到的唯一解决方案是记住书面单词的长度并按右键获取总长度数。

【问题讨论】:

什么?你为什么需要这个?它在哪里使用?您是在谈论从 Python 抑制操作系统中的按键吗?如果是这样,您就可以搭便车了。 【参考方案1】:

Nvm,我在另一个帖子里找到了答案:

@Torxed,是的,它与按键抑制有关,我正在使用它来创建一个自动完成工具。

from pynput import keyboard

def keyboard_listener():
    global key
    global keyboard_listener

    def on_press(key):
        print('on press', key)

    def on_release(key):
        print('on release', key)
        if key == keyboard.Key.esc:
            return False

    def win32_event_filter(msg, data):
        if(msg == 257 or msg == 256) and (data.vkCode == 38 or data.vkCode == 40):
            listener._suppress = True
        else:
            listener._suppress = False
        return True

    return  keyboard.Listener(
        on_press=on_press, 
        on_release=on_release, 
        win32_event_filter=win32_event_filter,
        suppress=False
    )


listener = keyboard_listener()

if __name__== '__main__':
    with listener as ml:
        ml.join()

【讨论】:

这似乎是微软产品的解决方案

以上是关于如何在 Python 中抑制来自键盘的命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制来自 ProGuard 的“也许这是程序方法”警告

如何抑制来自 gpgme 的 valgrind 警告?

如何在(签名的)联网应用程序运行时抑制防火墙警告(来自 Xcode)

运行单元测试时如何抑制来自 node.js 应用程序的应用程序日志消息?

调用 Set-ExecutionPolicy 时如何抑制来自脚本的警告消息

如何在python大数计算中抑制科学计数法