2017-09-22 11 views
0

CLIプログラムを書くときは、Ctrl+<anything>コマンドを読んでみたい。PythonのCLIからCtrl、Alt、Shiftキーを読む

私のCLIのpythonアプリケーションのCtrl+R組み合わせキーを聞くとどうすればいいですか?

現在のところ、Linux環境でのみ必要です。 pythonicアプローチが最良の選択肢でしょうが、私はどのようにわかりません。

信号からは、既知の入力を処理できますが、カスタムキーストロークは処理できません。

+0

これらのキーの状態を取得するには、OS関数を直接呼び出す必要があります。あなたはどのOSを実行していますか?コントロールと文字の組み合わせでは、検出できる文字が生成されますが。 –

+0

良いしかし、OSバインドされた実装を書かずに、これを行うためのいくつかのpythonの方法がありますか?私はスタンダードからの赤はきれいなアプローチだと信じています...しかし、私は方法が分かりません。 – apast

+0

Controlで*任意の*キーを使用する、またはアルファベットの文字のみを使用することはあなたの目標ですか? –

答えて

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() 
関連する問題