0

I have a problem with pynput, I don't know how to set the time interval between on_press and on_release.

For example when I press 'e' and hold it for 5 seconds when I release it the code should show that I held the button 'e' for 5 seconds.

from pynput.mouse import Listener as MouseListener
from pynput.keyboard import Key, Listener as KeyboardListener
from pynput import keyboard
import logging
import time


logging.basicConfig(filename="event_log.py", filemode="w", level=logging.DEBUG, format="%(message)s")
logging.info("import pyautogui as pg\nimport time\nimport keyboard\n\nwhile keyboard.is_pressed('q') == False:")


def on_press(key):
    if key == Key.esc:
        # Stop listener
        mouse_listener.stop()
        return False


def on_release(key):
    keyBefore = key
    print("{0} release".format(key))
    logging.info("{0} release".format(key))


def on_move(x, y):
    logging.info("Mouse moved to ({0}, {1})".format(x, y))
    print("Mouse moved to ({0}, {1})".format(x, y))


def on_click(x, y, button, pressed):
    if pressed:
        logging.info("Mouse clicked at ({0}, {1}) with {2}".format(x, y, button))


keyboard_listener = KeyboardListener(on_press=on_press, on_release=on_release)
mouse_listener = MouseListener(
    on_move=on_move,
    on_click=on_click,
)


def main():
    keyboard_listener.start()
    mouse_listener.start()
    keyboard_listener.join()
    mouse_listener.join()


if __name__ == "__main__":
    main()
mkrieger1
  • 19,194
  • 5
  • 54
  • 65

0 Answers0