Skip to main content

Network Monitoring (Python Script)

 Network Monitoring (Python Script)

Include Listing, Network Monitoring, Kick Etc.



Script:


import tkinter as tk
from tkinter import messagebox
import random
import winsound  # For sound playback

# Alphabet list
alphabet = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")

# Function to return to the main menu
def return_to_main_menu(window):
    window.destroy()
    root.deiconify()

# Function for ABC Learner
def start_abc_learner():
    root.withdraw()
    learner_window = tk.Toplevel(root)
    learner_window.title("ABC Learner")
    learner_window.geometry("800x600")
    learner_window.configure(bg="#FFCCCC")

    def play_sound(letter):
        try:
            winsound.PlaySound(f"sounds/{letter}.wav", winsound.SND_FILENAME | winsound.SND_ASYNC)
        except Exception as e:
            print(f"Sound error for '{letter}': {e}")

    def show_next_letter():
        global current_index
        if current_index < len(alphabet):
            label_var.set(alphabet[current_index])
            current_color = random.choice(["#FFCCCC", "#FFCC99", "#FFFF99", "#CCFFCC", "#CCCCFF", "#FFCCFF"])
            learner_window.config(bg=current_color)
            play_sound(alphabet[current_index])
        else:
            messagebox.showinfo("Congratulations!", "You've completed the ABCs!")
            return_to_main_menu(learner_window)

    def check_letter(event):
        global current_index
        pressed_key = event.char.upper()
        if pressed_key == alphabet[current_index]:
            current_index += 1
            show_next_letter()
        else:
            messagebox.showwarning("Try Again!", f"Press '{alphabet[current_index]}' to continue.")

    learner_window.bind('<Escape>', lambda event: return_to_main_menu(learner_window))

    global current_index
    current_index = 0

    label_var = tk.StringVar()
    label_var.set(alphabet[0])

    letter_label = tk.Label(learner_window, textvariable=label_var, font=("Arial", 200, "bold"), bg="#FFCCCC", fg="#333333")
    letter_label.pack(pady=50)

    instruction_label = tk.Label(learner_window, text="Press the matching key on your keyboard!", font=("Arial", 20), bg="#FFCCCC", fg="#333333")
    instruction_label.pack(pady=20)

    main_menu_button = tk.Button(learner_window, text="Main Menu", font=("Arial", 16), bg="#4CAF50", fg="white", command=lambda: return_to_main_menu(learner_window), padx=10, pady=10)
    main_menu_button.pack(pady=20)

    learner_window.bind('<KeyPress>', check_letter)
    show_next_letter()

# Function for ABC Test
def start_abc_test():
    root.withdraw()
    test_window = tk.Toplevel(root)
    test_window.title("ABC Test")
    test_window.geometry("800x600")
    test_window.configure(bg="#FBE7C6")

    def next_letter():
        global current_letter
        current_letter = random.choice(alphabet)
        letter_var.set(current_letter)
        start_timer()

    def start_timer():
        global time_left, timer
        time_left = 10
        timer_label_var.set(f"Time Left: {time_left} seconds")
        timer = test_window.after(1000, countdown)

    def countdown():
        global time_left, timer
        if time_left > 0:
            time_left -= 1
            timer_label_var.set(f"Time Left: {time_left} seconds")
            timer = test_window.after(1000, countdown)
        else:
            messagebox.showinfo("Test Over", "You Failed!")
            return_to_main_menu(test_window)

    def check_input(event):
        global timer
        user_input = event.char.upper()
        if user_input == current_letter:
            test_window.after_cancel(timer)  # Stop the timer if correct input
            next_letter()  # Move to the next letter
        else:
            messagebox.showwarning("Incorrect!", "Try again!")

    # Bind the <KeyPress> event
    test_window.bind('<KeyPress>', check_input)

    # Set focus on the test window
    test_window.focus_force()

    global current_letter, time_left
    time_left = 10

    letter_var = tk.StringVar()
    letter_var.set("")

    letter_label = tk.Label(test_window, textvariable=letter_var, font=("Arial", 150, "bold"), bg="#FBE7C6", fg="#333333")
    letter_label.pack(pady=50)

    timer_label_var = tk.StringVar()
    timer_label_var.set(f"Time Left: {time_left} seconds")

    timer_label = tk.Label(test_window, textvariable=timer_label_var, font=("Arial", 24), bg="#FBE7C6", fg="#333333")
    timer_label.pack(pady=20)

    instructions_label = tk.Label(test_window, text="Press the key corresponding to the letter shown!", font=("Arial", 16), bg="#FBE7C6", fg="#333333")
    instructions_label.pack(pady=10)

    main_menu_button = tk.Button(test_window, text="Main Menu", font=("Arial", 16), bg="#4CAF50", fg="white", command=lambda: return_to_main_menu(test_window), padx=10, pady=10)
    main_menu_button.pack(pady=20)

    next_letter()

# Function for ABC Matching
def start_abc_matching():
    root.withdraw()
    matching_window = tk.Toplevel(root)
    matching_window.title("ABC Matching")
    matching_window.geometry("800x600")
    matching_window.configure(bg="#E6E6FA")

    def play_sound(letter):
        try:
            winsound.PlaySound(f"sounds/{letter}.wav", winsound.SND_FILENAME | winsound.SND_ASYNC)
        except Exception as e:
            print(f"Sound error for '{letter}': {e}")

    def show_new_letters():
        global target_letter, letter_buttons
        target_letter = random.choice(alphabet)
        play_sound(target_letter)

        for button in letter_buttons:
            button.destroy()
        letter_buttons.clear()

        displayed_letters = random.sample(alphabet, 6)
        if target_letter not in displayed_letters:
            displayed_letters[random.randint(0, 5)] = target_letter

        for letter in displayed_letters:
            button = tk.Button(
                matching_window, text=letter, font=("Arial", 40), bg="#4CAF50", fg="white",
                command=lambda l=letter: check_letter(l)
            )
            button.pack(pady=10, padx=10, side="left", expand=True)
            letter_buttons.append(button)

    def check_letter(selected_letter):
        if selected_letter == target_letter:
            messagebox.showinfo("Correct!", "You got it! Well done!")
            show_new_letters()
        else:
            messagebox.showwarning("Incorrect!", f"The correct letter was '{target_letter}'!")
            show_new_letters()

    matching_window.bind('<Escape>', lambda event: return_to_main_menu(matching_window))

    global letter_buttons
    letter_buttons = []
    target_letter = None

    instructions_label = tk.Label(matching_window, text="Listen to the sound and click the matching letter!", font=("Arial", 20), bg="#E6E6FA", fg="#333333")
    instructions_label.pack(pady=20)

    main_menu_button = tk.Button(
        matching_window, text="Main Menu", font=("Arial", 16), bg="#FFC300", fg="white",
        command=lambda: return_to_main_menu(matching_window), padx=10, pady=10
    )
    main_menu_button.pack(pady=20)

    show_new_letters()

# Main Menu Layout
root = tk.Tk()
root.title("ABC Learning App")
root.geometry("800x600")
root.configure(bg="#f0f0f0")

title_label = tk.Label(root, text="Welcome to ABC Learning App", font=("Helvetica", 24, "bold"), bg="#f0f0f0", fg="#333333")
title_label.pack(pady=30)

abc_learner_button = tk.Button(root, text="ABC Learner", font=("Arial", 16), bg="#4CAF50", fg="white", command=start_abc_learner, padx=10, pady=10)
abc_learner_button.pack(pady=20)

abc_test_button = tk.Button(root, text="ABC Test", font=("Arial", 16), bg="#FF5733", fg="white", command=start_abc_test, padx=10, pady=10)
abc_test_button.pack(pady=20)

abc_matching_button = tk.Button(root, text="ABC Matching", font=("Arial", 16), bg="#FFC300", fg="white", command=start_abc_matching, padx=10, pady=10)
abc_matching_button.pack(pady=20)

root.mainloop()
fff


Comments