From 3c5307c0efe6bf61afe0d4efa65b2350e8d38035 Mon Sep 17 00:00:00 2001 From: Matteo Benedetto Date: Tue, 19 Aug 2025 13:25:12 +0200 Subject: [PATCH] Enhance KeyLogger to display key press/release messages on the window --- key.py | 14 ++++++++++++-- keycode.txt | 9 +++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 keycode.txt diff --git a/key.py b/key.py index 4bf0ec4..611e0a9 100644 --- a/key.py +++ b/key.py @@ -15,6 +15,8 @@ class KeyLogger: self.key_down = True def run(self): + # Main loop + while self.running: # Handle SDL events events = sdl2.ext.get_events() @@ -22,15 +24,23 @@ class KeyLogger: if event.type == sdl2.SDL_KEYDOWN: keycode = event.key.keysym.sym # Log keycode to file - open("keycode.txt", "a").write(f"Pressed: {keycode}\n") + self.message = f"Key pressed: {sdl2.SDL_GetKeyName(keycode).decode('utf-8')}" elif event.type == sdl2.SDL_KEYUP: keycode = event.key.keysym.sym # Log keycode to file - open("keycode.txt", "a").write(f"Released: {keycode}\n") + self.message = f"Key released: {sdl2.SDL_GetKeyName(keycode).decode('utf-8')}" elif event.type == sdl2.SDL_QUIT: self.running = False # Update the window + sdl2.ext.fill(self.window.get_surface(), sdl2.ext.Color(0, 0, 0)) + if hasattr(self, 'message'): + font = sdl2.ext.FontManager("assets/decterm.ttf", size=24) + text_surface = font.render(self.message, color=sdl2.ext.Color(255, 255, 255)) + sdl2.SDL_BlitSurface(text_surface, None, self.window.get_surface(), None) + sdl2.SDL_UpdateWindowSurface(self.window.window) + # Refresh the window + self.window.refresh() sdl2.SDL_Delay(10) # Check for quit event diff --git a/keycode.txt b/keycode.txt new file mode 100644 index 0000000..614f0e5 --- /dev/null +++ b/keycode.txt @@ -0,0 +1,9 @@ +Pressed: 13 +Pressed: 13 +Pressed: 13 +Pressed: 13 +Released: 13 +Pressed: 1073741912 +Released: 1073741912 +Pressed: 1073742048 +Released: 1073742048