46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
import time
|
|
from pynput import keyboard, mouse
|
|
import pyautogui
|
|
from ast import literal_eval
|
|
|
|
# Classe pour enregistrer les événements
|
|
class InputRecorder:
|
|
def __init__(self, file_name="events_log.txt"):
|
|
self.events = []
|
|
self.file_name = file_name
|
|
|
|
# Fonction pour gérer les événements du clavier
|
|
def on_press_key(self, key):
|
|
try:
|
|
self.events.append(('keyboard', 'press', key.char, time.time()))
|
|
except AttributeError:
|
|
self.events.append(('keyboard', 'press', key.name, time.time()))
|
|
|
|
def on_release_key(self, key):
|
|
print(key, "############ key released", keyboard.Key.esc)
|
|
self.events.append(('keyboard', 'release', key, time.time()))
|
|
if key == keyboard.Key.esc:
|
|
return False
|
|
|
|
# Fonction pour gérer les événements de la souris
|
|
def on_click(self, x, y, button, pressed):
|
|
if pressed:
|
|
self.events.append(('mouse', 'click', button.name, (x, y), time.time()))
|
|
|
|
# Fonction pour démarrer l'enregistrement
|
|
def start_recording(self):
|
|
print("Appuie sur Échap pour arrêter l'enregistrement...")
|
|
with keyboard.Listener(on_press=self.on_press_key, on_release=self.on_release_key) as kl, mouse.Listener(on_click=self.on_click) as ml:
|
|
kl.join()
|
|
ml.join()
|
|
|
|
# Sauvegarder les événements dans un fichier
|
|
with open(self.file_name, "w") as f:
|
|
for event in self.events:
|
|
f.write(str(event) + "\n")
|
|
print(f"Les événements ont été sauvegardés dans {self.file_name}")
|
|
|
|
if __name__ == "__main__":
|
|
# Enregistrement des événements
|
|
recorder = InputRecorder()
|
|
recorder.start_recording() |