diff --git a/key.py b/key.py index 127c745..4bf0ec4 100644 --- a/key.py +++ b/key.py @@ -2,54 +2,44 @@ import sys import os -sys.path.append(os.path.dirname(os.path.abspath(__file__))) +import sdl2 +import sdl2.ext -from engine import sdl2 as engine - -class KeyTester: +class KeyLogger: def __init__(self): - self.render_engine = engine.GameWindow(800, 600, 1, "Key Tester", - key_callback=(self.key_pressed, self.key_released, None)) - self.pressed_keys = [] - self.last_key = "None" - - def key_pressed(self, key): - self.last_key = f"PRESSED: {key}" - if key not in self.pressed_keys: - self.pressed_keys.append(key) - print(f"Key pressed: {key}") - - def key_released(self, key): - self.last_key = f"RELEASED: {key}" - if key in self.pressed_keys: - self.pressed_keys.remove(key) - print(f"Key released: {key}") - - def update_display(self): - # Mostra l'ultimo tasto premuto/rilasciato - self.render_engine.draw_text(f"Last action: {self.last_key}", - self.render_engine.fonts[20], (10, 10), - engine.sdl2.ext.Color(255, 255, 255)) - - # Mostra tutti i tasti attualmente premuti - pressed_text = "Currently pressed: " + ", ".join(self.pressed_keys) if self.pressed_keys else "Currently pressed: None" - self.render_engine.draw_text(pressed_text, - self.render_engine.fonts[16], (10, 40), - engine.sdl2.ext.Color(255, 255, 255)) - - # Istruzioni - self.render_engine.draw_text("Press any key to test. ESC to quit.", - self.render_engine.fonts[14], (10, 80), - engine.sdl2.ext.Color(200, 200, 200)) - - # Continua il loop - self.render_engine.new_cycle(60, self.update_display) - + # Initialize SDL2 + sdl2.ext.init() + self.window = sdl2.ext.Window("Key Logger", size=(640, 480)) + self.window.show() + self.running = True + self.key_down = True + def run(self): - print("Key Tester started. Press keys to see them displayed.") - print("Press ESC to quit.") - self.render_engine.mainloop(update=self.update_display) + while self.running: + # Handle SDL events + events = sdl2.ext.get_events() + for event in events: + if event.type == sdl2.SDL_KEYDOWN: + keycode = event.key.keysym.sym + # Log keycode to file + open("keycode.txt", "a").write(f"Pressed: {keycode}\n") + elif event.type == sdl2.SDL_KEYUP: + keycode = event.key.keysym.sym + # Log keycode to file + open("keycode.txt", "a").write(f"Released: {keycode}\n") + elif event.type == sdl2.SDL_QUIT: + self.running = False + + # Update the window + self.window.refresh() + sdl2.SDL_Delay(10) + # Check for quit event + if not self.running: + break + # Cleanup + sdl2.ext.quit() if __name__ == "__main__": - tester = KeyTester() - tester.run() \ No newline at end of file + logger = KeyLogger() + logger.run() + \ No newline at end of file