2017-09-22 5 views
0

CLI 프로그램을 작성하면서 Ctrl+<anything> 명령을 읽으 려합니다.python에서 Ctrl, Alt 및 Shift 키 읽기 CLI

어떻게들을 수 있고 처리 할 수 ​​있습니까? : Ctrl+R 내 CLI 파이썬 응용 프로그램의 조합 키?

현재로서는 Linux 환경에서만 필요합니다. pythonic 접근 방식이 최선의 선택이 될 수 있지만 어떻게해야할지 모르겠다.

신호에서 잘 알려진 입력은 처리 할 수 ​​있지만 사용자 정의 키 입력은 처리 할 수 ​​없습니다.

+0

해당 키의 상태를 확인하려면 OS 기능을 직접 호출해야합니다. 어떤 OS를 실행하고 있습니까? 컨트롤과 문자의 조합은 사용자가 감지 할 수있는 문자를 생성합니다. –

+0

좋습니다. 하지만 OS 바인딩 구현을 작성하지 않고이를 수행 할 파이썬 방법이 있습니까? 나는 표준에서 빨간 것이 깨끗한 접근이라고 믿는다. 그러나 나는 어떻게 해야할지 모른다. – apast

+0

Control에서 * any * 키를 사용하거나 알파벳 문자 만 사용 하시겠습니까? –

답변

2

Pynput은 다양한 운영 체제에서 마우스 및 키보드 입력을 처리하도록 설정된 패키지입니다. This Github issue은 보류 키 검색 방법을 보여줍니다. 링크를 따르지 않으려면 :

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()