Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python CLI读取Ctrl、Alt和Shift键_Python_Command Line Interface - Fatal编程技术网

从python CLI读取Ctrl、Alt和Shift键

从python CLI读取Ctrl、Alt和Shift键,python,command-line-interface,Python,Command Line Interface,在编写CLI程序时,我想阅读Ctrl+命令 如何从CLI python应用程序中侦听和处理组合键,即:Ctrl+R 目前,它只对Linux环境有必要。蟒蛇式的方法是最好的选择,但我不知道怎么做 通过信号,可以处理众所周知的输入,但不能自定义击键。是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接: from pynput import keyboard # The key combination to check COMBINATION = {ke

在编写CLI程序时,我想阅读
Ctrl+
命令

如何从CLI python应用程序中侦听和处理组合键,即:
Ctrl+R

目前,它只对Linux环境有必要。蟒蛇式的方法是最好的选择,但我不知道怎么做

通过信号,可以处理众所周知的输入,但不能自定义击键。

是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接:

from pynput import keyboard

# The key combination to check
COMBINATION = {keyboard.Key.cmd, keyboard.Key.ctrl}

# The currently active modifiers
current = set()


def on_press(key):
    if key in COMBINATION:
        current.add(key)
        if all(k in current for k in COMBINATION):
            print('All modifiers active!')
    if key == keyboard.Key.esc:
        listener.stop()


def on_release(key):
    try:
        current.remove(key)
    except KeyError:
        pass


with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()
是一个用于处理各种操作系统的鼠标和键盘输入的软件包。演示如何检测保留的密钥。如果您不想访问该链接:

from pynput import keyboard

# The key combination to check
COMBINATION = {keyboard.Key.cmd, keyboard.Key.ctrl}

# The currently active modifiers
current = set()


def on_press(key):
    if key in COMBINATION:
        current.add(key)
        if all(k in current for k in COMBINATION):
            print('All modifiers active!')
    if key == keyboard.Key.esc:
        listener.stop()


def on_release(key):
    try:
        current.remove(key)
    except KeyError:
        pass


with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

您需要直接调用OS函数来获取这些键的状态。你正在运行哪个操作系统?虽然控件和字母的组合将生成一个可以检测的字符。很好。但是,有一些pythonic的方法可以做到这一点,而不需要编写一个操作系统绑定的实现吗?我相信来自stdin的红色是一种干净的方法。。。但是,我不知道怎么做。你的目标是使用任何键进行控制,还是只使用字母表中的字母?是的。我的目的是构建支持任何命令的CLI工具,例如,使用Ctrl+R强制重新加载。您需要直接调用操作系统函数来获取这些键的状态。你正在运行哪个操作系统?虽然控件和字母的组合将生成一个可以检测的字符。很好。但是,有一些pythonic的方法可以做到这一点,而不需要编写一个操作系统绑定的实现吗?我相信来自stdin的红色是一种干净的方法。。。但是,我不知道怎么做。你的目标是使用任何键进行控制,还是只使用字母表中的字母?是的。我的目的是构建支持任何命令的CLI工具,例如,通过Ctrl+R来强制重新加载。这将使用限制在您的本地Linux桌面上,并且在没有X的Linux机器上无法通过SSH工作。例如“在Linux上,pynput使用X,因此必须运行X服务器”。这将限制仅在本地Linux桌面上使用,并且在没有X的Linux机器上无法通过SSH工作。