0

キー(任意のキー)を押すとアクティブになり、設定された時間(たとえば10秒)内に押されたすべてのキーをリストに保存して印刷するキーロガーが必要です。私はこれを試しました:

from pynput import keyboard
from time import sleep

def on_press(key):
    global recording, keys_pressed
    if not recording:
        recording = True
        sleep(10)
        print(" ".join(keys_pressed))
        recording = False


listener = keyboard.Listener(
    on_press=on_press)
listener.start()


def on_release(key):
    global recording
    if recording:
        print("key pressed")
        global keys_pressed
        Key = str(key)
        if Key.startswith("Key."):
            keys_pressed.append(Key[4:].strip("'"))
        else:
            keys_pressed.append(str(key).strip("'"))

listener2 = keyboard.Listener(
    on_release=on_release)
listener2.start()

keys_pressed = []

recording = False

while True:
    pass

それはちょっとうまくいきますが、私が明らかにしたくないリストを複数回印刷します。プログラムの実行も非常に遅くなります。

解決策をご存知でしたら教えてください。

4

1 に答える 1