pynputを使用してキーボードリスナーに慣れる簡単なプログラムがあります。それは重要ではありません。重要なことは、shift_pressed
属性がTrue
に変更されないように見えることです。私のプログラムは現在、次のようになります。pynputキーボードリスナーは、シフトが押されたときにshiftを返しますが、shift_pressedは変更しません。
from pynput.keyboard import Controller, Listener
boo = True
keyboard = Controller()
fib_lst = [0, 1]
def on_press(key):
print(key)
print(keyboard.shift_pressed)
Listener(on_press=on_press).start()
while boo:
nxt = fib_lst[-1] + fib_lst[-2]
input(nxt)
fib_lst.append(nxt)
私はon_press
(またはon_release
)にこのような何かをしようとしている:
def on_press(key):
if key == Key.delete:
if keyboard.shift_pressed:
func1()
else:
func2()
それならば、このコードはfunc1
シフトが押されているかfunc2
を実行する必要がありますそうではありません。しかし、shift_pressed
は永久に間違っているので、現在のところfunc2
しか行っていません。 shift_pressed
を正常に動作させるにはどうしたらよいですか?
編集1:目的の最終結果をより明確に指定します。
編集2:追加する文字列を2つの異なる機能に変更して、より明瞭にする。
編集3:もっと最近の例に一致するように最後の質問のパラメータを変更し
githubリポジトリに問題を投稿した後、私は[このクローズドな問題](https://github.com/moses-palmer/pynput/issues/20)を見ました。私はここで私の目的のためにあなたが使用したパターンを使用します。ご協力ありがとうございました。 –