写着玩的程序:pycharm实现无限弹窗程序(非病毒程序,仅整蛊使用)

运行环境

PyCharm 2023.2.1

python3.11

具体内容

源代码

复制代码
import tkinter as tk
from tkinter import messagebox
import threading

class PopupGenerator:
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("200x120")
        self.root.title("无限弹窗")
        self.root.protocol("WM_DELETE_WINDOW", lambda: None)  # 用户不可关闭弹窗一
        self.common_style = {"font": ("华文新魏", 14)}
        self.label = tk.Label(self.root, text="恭喜你打开了这个程序", **self.common_style, fg="red")
        self.label.pack(pady=20)
        self.close_program_button = tk.Button(self.root, text="关闭程序", command=self.try_detox, **self.common_style,
                                              bg="green", fg="white")
        self.close_program_button.pack(pady=10)
        self.popup_count = 0
        self.detox_attempts = 0
        self.popup_positions = []  # 存储已存在弹窗的位置信息
        self.generate_popup()

    def generate_popup(self):
        if self.popup_count < 20:
            popup = tk.Toplevel(self.root)
            popup.title("无限弹窗")
            popup.geometry("200x120")
            # 检查已存在弹窗的位置,设置新弹窗的位置
            x, y = self.calculate_popup_position(popup.winfo_reqwidth(), popup.winfo_reqheight())
            popup.geometry(f"+{x}+{y}")
            popup_label = tk.Label(popup, text="多试一下", fg="blue", **self.common_style)
            popup_label.pack(pady=20)
            popup.protocol("WM_DELETE_WINDOW", self.on_popup_close)
            self.popup_count += 1
            threading.Timer(1, self.generate_popup).start()

    def calculate_popup_position(self, width, height):
        # 计算新弹窗的位置,避免重叠
        x_offset, y_offset = 25, 25
        x = self.root.winfo_x() + x_offset + len(self.popup_positions) * x_offset
        y = self.root.winfo_y() + y_offset + len(self.popup_positions) * y_offset
        # 存储新弹窗的位置信息
        self.popup_positions.append((x, y))
        return x, y

    def on_popup_close(self):
        self.generate_additional_popup()

    def generate_additional_popup(self):
        additional_popup = tk.Toplevel(self.root)
        additional_popup.title("无限弹窗")
        additional_popup.geometry("200x120")
        # 检查已存在弹窗的位置,设置新弹窗的位置
        x, y = self.calculate_popup_position(additional_popup.winfo_reqwidth(), additional_popup.winfo_reqheight())
        additional_popup.geometry(f"+{x}+{y}")
        additional_popup_label = tk.Label(additional_popup, text="并没有用", fg="purple", **self.common_style)
        additional_popup_label.pack(pady=20)

    def try_detox(self):
        self.detox_attempts += 1
        if self.detox_attempts <= 10:
            messagebox.showinfo("温馨提示", f"你不会觉得点了 {self.detox_attempts} 次就有用吧")
        else:
            messagebox.showinfo("没想到啊", f"你居然坚持点了 {self.detox_attempts}次")
            self.root.destroy()

if __name__ == "__main__":
    popup_generator = PopupGenerator()
    popup_generator.root.mainloop()

运行结果如图

点击运行时

点击关闭程序按钮(未点击足够次数)

点击关闭程序按钮(点击次数足够)

关闭多试一下弹窗(仅并没有用弹窗可关闭)

关闭程序的方法

1、任务管理器结束任务

2、点击足够次数的关闭程序

注意事项

1、没有什么技术含量,仅娱乐使用

相关推荐
hboot2 小时前
AI工程师第五课 - 大语言模型基础
python·llm·fastapi
AOwhisky2 小时前
Python 学习笔记(第一期与第二期)——基础语法——核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发
STLearner3 小时前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
习明然4 小时前
我的本地化AI项目(三)
人工智能·python·electron·c#·avalonia
喜欢的名字被抢了5 小时前
Python实战:SQLAlchemy ORM与FastAPI项目集成
开发语言·python·sql·教程·fastapi
夏季疯6 小时前
读论文:STARS 是什么结构?一个统一的歌声自动标注框架
python
光测实验室7 小时前
3种Python降噪算法实测:我把处理速度提升了20倍
python
AOwhisky7 小时前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
爱吃提升7 小时前
Python桌面自动化PyAutoGUI完整实战教程:模拟鼠标键盘、窗口操作、图形识别自动化
python·自动化·计算机外设
花花无缺8 小时前
Windows 定时执行 Python 脚本方案
python·操作系统·命令行