import tkinter as tk
from tkinter import messagebox
import urllib.request
import io
import sys
import threading
from PIL import Image, ImageTk
# Ссылка на оригинальное или жуткое изображение MrsMajor
IMAGE_URL = "https://ytimg.com"
def show_fake_errors():
"""Функция, которая бесконечно спамит страшными окнами на фоне"""
while True:
# Звук ошибки воспроизводится автоматически благодаря иконке 'error'
messagebox.showerror("CRITICAL ERROR", "MrsMajor.exe has corrupted your system memory!")
messagebox.showwarning("WARNING", "Do not try to restart your PC. Deleting System32...")
def on_closing():
"""Блокируем закрытие окна по кнопке 'Крестик' или Alt+F4"""
messagebox.showwarning("Nice try", "You cannot escape Mrs Major so easily.")
def hard_exit(event):
"""Секретный выход по нажатию клавиши Esc"""
root.destroy()
sys.exit()
# Создаем главное окно
root = tk.Tk()
root.title("MrsMajor Simulator v2.0")
# Делаем окно на весь экран и поверх всех остальных окон
root.attributes('-fullscreen', True)
root.attributes('-topmost', True)
# Запрещаем закрывать окно стандартными способами
root.protocol("WM_DELETE_WINDOW", on_closing)
# Назначаем СЕКРЕТНУЮ КЛАВИШУ для выхода (кнопка Esc). Вы сможете выключить симуляцию сами.
root.bind("<Escape>", hard_exit)
try:
# Скачиваем пугающее изображение напрямую из интернета в оперативную память
with urllib.request.urlopen(IMAGE_URL) as url:
image_data = url.read()
# Открываем и растягиваем картинку под размер экрана
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
img = Image.open(io.BytesIO(image_data))
img = img.resize((screen_width, screen_height), Image.Resampling.LANCZOS)
bg_image = ImageTk.PhotoImage(img)
# Размещаем картинку на весь экран
label = tk.Label(root, image=bg_image, bg="black")
label.pack(fill="both", expand=True)
except Exception as e:
# Если нет интернета, просто сделаем жуткий красный фон с текстом
label = tk.Label(root, text="MRS MAJOR IS HERE", fg="red", bg="black", font=("Courier", 40, "bold"))
label.pack(fill="both", expand=True)
# Запускаем бесконечные фейковые ошибки в отдельном потоке, чтобы экран не зависал
error_thread = threading.Thread(target=show_fake_errors, daemon=True)
error_thread.start()
# Запуск симуляции
root.mainloop()