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


import sys
import winsound
import random
from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget, QTextEdit
from PyQt6.QtCore import Qt, QTimer
from PyQt6.QtGui import QFont, QPalette, QColor, QPixmap

class UltimateWinlocker(QWidget):
    def __init__(self):
        super().__init__()
        self.log_counter = 0
        self.initUI()
        
    def initUI(self):
        self.showFullScreen()
        self.setCursor(Qt.CursorShape.BlankCursor)
        
        palette = self.palette()
        palette.setColor(QPalette.ColorRole.Window, QColor(0, 0, 0))
        self.setPalette(palette)
        
        # --- БЕГУЩИЕ СТРОКИ (ТЕПЕРЬ ЯРКО-КРАСНЫЕ СРАЗУ, ЧТОБЫ ИХ БЫЛО ВИДНО) ---
        self.log_text = QTextEdit(self)
        self.log_text.setGeometry(30, 30, 700, 400)
        self.log_text.setReadOnly(True)
        self.log_text.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
        self.log_text.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
        self.log_text.setFont(QFont("Courier New", 12, QFont.Weight.Bold))
        self.log_text.setStyleSheet("background-color: transparent; color: #ff0000; border: none;")
        
        self.log_timer = QTimer(self)
        self.log_timer.timeout.connect(self.add_hacker_logs)
        self.log_timer.start(80) # Еще быстрее спам строк
        
        # --- ЦЕНТРАЛЬНЫЙ БЛОК ДЛЯ КАРТИНКИ И ТЕКСТА ---
        self.center_widget = QWidget(self)
        self.center_widget.setGeometry(0, 0, self.width(), self.height())
        
        self.layout = QVBoxLayout(self.center_widget)
        self.layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
        
        # ТВОЯ КАРТИНКА (Программа будет искать файл "photo.png" на Рабочем столе)
        self.img_label = QLabel(self)
        pixmap = QPixmap("photo.png")
        if not pixmap.isNull():
            self.img_label.setPixmap(pixmap.scaled(500, 500, Qt.AspectRatioMode.KeepAspectRatio, Qt.TransformationMode.SmoothTransformation))
        else:
            self.img_label.setText("⚠ [КАРТИНКА PHOTO.PNG НЕ НАЙДЕНА НА РАБОЧЕМ СТОЛЕ] ⚠")
            self.img_label.setStyleSheet("color: white; font-size: 20px;")
        self.img_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        
        # НАДПИСЬ ПО ЦЕНТРУ
        self.text_label = QLabel("ВАС ЗАМЕТИЛИ", self)
        self.text_label.setFont(QFont("Arial", 56, QFont.Weight.Bold))
        self.text_label.setStyleSheet("color: white; letter-spacing: 3px; background-color: rgba(0,0,0,150); padding: 10px;")
        self.text_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        
        self.layout.addWidget(self.img_label)
        self.layout.addWidget(self.text_label)
        
        # ТВОЙ ЗВУК КРИКА (Программа будет искать "scream.wav" на Рабочем столе)
        try:
            winsound.PlaySound("scream.wav", winsound.SND_FILENAME | winsound.SND_ASYNC | winsound.SND_LOOP)
        except:
            # Если твоего крика нет, включится громкий стандартный писк
            winsound.Beep(2000, 1000)

        # Таймеры переключения фаз
        QTimer.singleShot(5000, self.show_lock)
        QTimer.singleShot(12000, self.show_prank)

    def add_hacker_logs(self):
        hex_num = hex(random.randint(0x100000, 0xFFFFFF)).upper()
        fake_logs = [
            f">> LOADING MALICIOUS INJECTION...",
            f">> INJECTING INTO EXPLORER.EXE -> SYSTEM CRASH",
            f">> MEMORY OVERFLOW AT ADDRESS [0x{hex_num}]",
            f">> BYPASSING WINDOWS DEFENDER... SUCCESS",
            f">> CONNECTING TO C&C SERVER VIA IP...",
            f">> WINDOWS SYSTEM COMPLETELY LOCKED!"
        ]
        self.log_text.append(fake_logs[self.log_counter % len(fake_logs)])
        self.log_counter += 1

    def show_lock(self):
        self.text_label.setText("УПС, WINDOWS ЗАБЛОКИРОВАН!")
        self.text_label.setStyleSheet("color: #ff0000; font-size: 56px; font-weight: bold; background-color: rgba(0,0,0,150); padding: 10px;")

    def show_prank(self):
        self.log_timer.stop()
        self.log_text.hide()
        winsound.PlaySound(None, winsound.SND_PURGE) # Выключаем крик
        
        self.setCursor(Qt.CursorShape.ArrowCursor)
        self.img_label.hide() # Прячем страшную картинку в конце
        
        # Делаем финальный текст огромным, чтобы он точно не пропал
        self.text_label.setText("РАССЛАБЬСЯ, ЭТО ПРАНК! ⚡\n\nТы попался. Твой ПК в безопасности.\n\n(Для выхода нажми ESC)")
        self.text_label.setStyleSheet("color: #00ff00; font-size: 48px; font-weight: bold; text-align: center;")

    def keyPressEvent(self, event):
        if event.key() == Qt.Key.Key_Escape:
            winsound.PlaySound(None, winsound.SND_PURGE)
            self.close()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = UltimateWinlocker()
    sys.exit(app.exec())