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()