2017-05-28 3 views
1

私はubntuの中でPythonを使用していますが、私はリアルタイムで(MLのデータを生成するために)再生しているゲームからフレームデータを読み込んでいます。 (ゲーム画面から)リアルタイムで、キーボードのキーが押されているかどうかを知りたいのですが、最後にキーが押されていなければ、そのことを明確に示すはずです。別の方法でキーボード出力をキャプチャする

注:私のプログラムは別のウィンドウで再生されている間、seprateウィンドウで実行されています。

z=get_current_key_input(event) 
if z == None: #This may cause warning form the warnings module 
    print 'No key is pressed for this frame move on to the next.' 
else: 
    print str(z.key_code),'key is pressed for this frame.' 

私はコードを提供することができますが、それは厄介だとCV2といくつかのより多くの痛みを伴う依存関係を持っているので、私はオンデマンドで提供すると思う:

は、私のような機能が欲しいです。

私はグーグルでやっていますが、キーを押すたびに呼び出される関数ですが、それは非同期であり、遅延が発生し、そのデータを使用しています。

[UPDATE]:私は強烈な検索を通じて静かな有望な機能を発見したが、実際にそれのまわりで私の方法を動作することはできません

は、複雑な使用方法や痛みを伴うドキュメントです。 誰でもこれらの文書をどのように作業するのかを理解できれば、私にとって大きな助けになります。その関数へ リンク:here!

+0

使用[pynput](https://pypi.python.org/pypi/pynput) – Gahan

答えて

1

ここでは一例pynputから簡単なプログラムです:

def on_press(key): 
    try: 
     print('alphanumeric key {0} pressed'.format(key.char)) 
    except: 
     print('special key {0} pressed'.format(key)) 

def on_release(key): 
    print('{0} released'.format(key)) 
    if key == keyboard.Key.esc: 
     return False 

def get_current_key_input(): 
    with keyboard.Listener(on_press=on_press, on_release=on_release) as listener: 
     listener.join() 
+0

おかげで、よさそうです試してみましょう、私はあなたに知らせる! –

+0

それはここにあるのですが、心配しないでください。 –

+0

ここに問題がありますが、キーを押すたびに起動しますが、キーが押されたかどうかを調べる関数のように、キーを押したときに呼び出される関数ではありません。そんなことをしてもらえますか? –

関連する問題