|
|
|
@ -15,6 +15,8 @@ class KeyLogger: |
|
|
|
self.key_down = True |
|
|
|
self.key_down = True |
|
|
|
|
|
|
|
|
|
|
|
def run(self): |
|
|
|
def run(self): |
|
|
|
|
|
|
|
# Main loop |
|
|
|
|
|
|
|
|
|
|
|
while self.running: |
|
|
|
while self.running: |
|
|
|
# Handle SDL events |
|
|
|
# Handle SDL events |
|
|
|
events = sdl2.ext.get_events() |
|
|
|
events = sdl2.ext.get_events() |
|
|
|
@ -22,15 +24,23 @@ class KeyLogger: |
|
|
|
if event.type == sdl2.SDL_KEYDOWN: |
|
|
|
if event.type == sdl2.SDL_KEYDOWN: |
|
|
|
keycode = event.key.keysym.sym |
|
|
|
keycode = event.key.keysym.sym |
|
|
|
# Log keycode to file |
|
|
|
# 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: |
|
|
|
elif event.type == sdl2.SDL_KEYUP: |
|
|
|
keycode = event.key.keysym.sym |
|
|
|
keycode = event.key.keysym.sym |
|
|
|
# Log keycode to file |
|
|
|
# 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: |
|
|
|
elif event.type == sdl2.SDL_QUIT: |
|
|
|
self.running = False |
|
|
|
self.running = False |
|
|
|
|
|
|
|
|
|
|
|
# Update the window |
|
|
|
# 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() |
|
|
|
self.window.refresh() |
|
|
|
sdl2.SDL_Delay(10) |
|
|
|
sdl2.SDL_Delay(10) |
|
|
|
# Check for quit event |
|
|
|
# Check for quit event |
|
|
|
|