import tkinter as tk
from tkinter import messagebox
import os
import sys
# ====== НАСТРОЙКИ ======
CORRECT_PASSWORD = "12345" # Замените на свой пароль
MAX_ATTEMPTS = 3 # Количество попыток перед выключением
# ========================
attempts_left = MAX_ATTEMPTS
def shutdown_pc():
"""Выключение компьютера"""
try:
if sys.platform.startswith("win"):
# Windows
os.system("shutdown /s /t 10")
elif sys.platform.startswith("linux") or sys.platform == "darwin":
# Linux / macOS
os.system("shutdown -h now")
except Exception as e:
print(f"Ошибка выключения: {e}")
def check_password():
global attempts_left
entered = entry.get()
if entered == CORRECT_PASSWORD:
messagebox.showinfo("Доступ разрешён", "Пароль верный. Добро пожаловать!")
root.destroy()
sys.exit(0)
else:
attempts_left -= 1
if attempts_left > 0:
messagebox.showerror(
"Ошибка",
f"Неверный пароль!\nОсталось попыток: {attempts_left}"
)
entry.delete(0, tk.END)
else:
messagebox.showerror(
"Доступ запрещён",
"Превышено количество попыток.\nКомпьютер будет выключен!"
)
root.after(1500, lambda: (shutdown_pc(), root.destroy()))
# ====== Создание окна ======
root = tk.Tk()
root.title("Введите пароль")
root.geometry("350x180")
root.resizable(False, False)
# Запрет закрытия окна крестиком (по желанию)
root.protocol("WM_DELETE_WINDOW", lambda: None)
label = tk.Label(root, text="Введите пароль:", font=("Arial", 12))
label.pack(pady=15)
entry = tk.Entry(root, show="*", font=("Arial", 12), width=25)
entry.pack(pady=5)
entry.focus_set()
# Обработка Enter
entry.bind("<Return>", lambda event: check_password())
button = tk.Button(
root,
text="Войти",
command=check_password,
font=("Arial", 11),
width=15
)
button.pack(pady=15)
root.mainloop()