Загрузка данных


import tkinter as tk
import random

class PersistentShakingHackingWindows:
    def __init__(self):
        self.root = tk.Tk()
        self.root.withdraw()  # скрываем главное окно
        self.windows = []  # список всех созданных окон
        
    def create_hacking_window(self):
        # Создаём новое окно
        window = tk.Toplevel(self.root)
        self.windows.append(window)
        
        # Случайный размер (меньше, чтобы поместилось больше окон)
        width = random.randint(80, 180)
        height = random.randint(60, 120)
        
        # Случайная позиция
        x = random.randint(0, self.root.winfo_screenwidth() - width)
        y = random.randint(0, self.root.winfo_screenheight() - height)
        window.geometry(f"{width}x{height}+{x}+{y}")
        
        # Настройки окна
        window.overrideredirect(True)  # убираем заголовок
        window.attributes('-alpha', random.uniform(0.5, 0.9))  # прозрачность
        
        # Текст
        label = tk.Label(
            window,
            text="ТЫ ВЗЛОМАН",
            font=("Courier", 10, "bold"),
            fg=random.choice(["red", "green", "yellow", "white", "cyan", "magenta"]),
            bg="black"
        )
        label.pack(expand=True)
        
        # Параметры для тряски
        shake_params = {
            'window': window,
            'original_x': x,
            'original_y': y,
            'width': width,
            'height': height,
            'shake_intensity': random.randint(3, 8),  # сила тряски
            'shake_speed': random.randint(50, 150)  # скорость тряски
        }
        
        # Запускаем тряску
        self.start_shaking(shake_params)
    
    def start_shaking(self, params):
        """Запускает эффект тряски для окна"""
        def shake():
            if params['window'] in self.windows:  # проверяем, существует ли окно
                # Случайное смещение
                dx = random.randint(-params['shake_intensity'], params['shake_intensity'])
                dy = random.randint(-params['shake_intensity'], params['shake_intensity'])
                
                # Обновляем позицию
                new_x = params['original_x'] + dx
                new_y = params['original_y'] + dy
                
                params['window'].geometry(f"{params['width']}x{params['height']}+{new_x}+{new_y}")
                
                # Повторяем тряску
                params['window'].after(params['shake_speed'], shake)
        
        shake()  # запускаем первую итерацию
    
    def start_attack(self):
        """Запускает бесконечный цикл создания окон"""
        self.create_hacking_window()
        # Высокая частота создания окон — каждые 20–50 мс
        self.root.after(random.randint(20, 50), self.start_attack)
    
    def run(self):
        self.start_attack()
        self.root.mainloop()

# Запуск программы
if __name__ == "__main__":
    hacking = PersistentShakingHackingWindows()
    hacking.run()