Browse Source

Enhance KeyLogger to display key press/release messages on the window

master
Matteo Benedetto 4 months ago
parent
commit
3c5307c0ef
  1. 14
      key.py
  2. 9
      keycode.txt

14
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

9
keycode.txt

@ -0,0 +1,9 @@
Pressed: 13
Pressed: 13
Pressed: 13
Pressed: 13
Released: 13
Pressed: 1073741912
Released: 1073741912
Pressed: 1073742048
Released: 1073742048
Loading…
Cancel
Save