愚人节,赶紧用这五个python脚本整蛊你的朋友吧
引言
4月1日,愚人节如期而至,怎样通过 python 来给你的朋友致以亲切问候呢?有没有想过使用 python 来整蛊你的朋友?
本文将给你列举五个脚本,或许能够进一步 促进你和朋友之间的友谊 哦!
以下所有程序最好能够打包成 exe 发给你的朋友,这样会更好哦!
1、关不掉的窗口
这是一个关不掉的窗口,只有输入提示的内容才能被正常关闭。
演示
代码
import tkinter as tk
from tkinter import messagebox
class UnClosableWindow:
def __init__(self):
self.root = tk.Tk()
self.root.title("无法关闭窗口")
self.root.protocol("WM_DELETE_WINDOW", self.on_close)
self.tips = '我是小丑'
# 设置窗口大小和位置
self.root.geometry("400x200+500+300")
# 添加标签
label = tk.Label(self.root, text="输入下面的内容,否则别想关掉我", font=("Arial", 14))
label.pack(pady=20)
# 添加输入框
self.entry = tk.Entry(self.root, font=("Arial", 12), width=30)
self.entry.pack(pady=10)
# 添加提示标签
hint_label = tk.Label(self.root, text=f"请输入'{self.tips}'来关闭窗口", font=("Arial", 10))
hint_label.pack(pady=5)
# 添加按钮
button = tk.Button(self.root, text="尝试关闭", command=self.on_close)
button.pack(pady=10)
# 禁止使用Alt+F4等系统快捷键
self.root.bind("<Alt-F4>", lambda e: "break")
def on_close(self):
# 检查输入内容
if self.entry.get().strip() == self.tips:
self.root.destroy()
else:
messagebox.showwarning("错误", "请输入正确的关闭密码!")
self.root.focus_force() # 强制窗口获取焦点
self.entry.focus_set() # 将焦点设置到输入框
def run(self):
self.root.mainloop()
# 创建并运行窗口
if __name__ == "__main__":
window = UnClosableWindow()
window.run()
2、监控程序
这是一个监控你朋友键盘输入,然后弹出将 内容发送给他老板 的整蛊程序。
演示
安装库
pip install pynput
代码
import tkinter as tk
from tkinter import messagebox
from pynput import keyboard
import threading
class InputMonitor:
def __init__(self):
self.recorded_input = []
self.listener = None
self.root = tk.Tk()
self.root.withdraw() # 隐藏主窗口
def on_press(self, key):
try:
# 记录可打印字符
self.recorded_input.append(key.char)
except AttributeError:
# 处理特殊按键
if key == keyboard.Key.space:
self.recorded_input.append(' ')
elif key == keyboard.Key.enter:
self.recorded_input.append('\n')
elif key == keyboard.Key.backspace and self.recorded_input:
self.recorded_input.pop()
def show_result(self):
if self.listener:
self.listener.stop()
input_text = ''.join(self.recorded_input)
# 创建显示窗口
result_window = tk.Toplevel()
result_window.title("监控结果")
tk.Label(result_window, text="监控到的输入内容:").pack(pady=5)
text_widget = tk.Text(result_window, height=10, width=50)
text_widget.pack(padx=10, pady=5)
text_widget.insert(tk.END, input_text)
text_widget.config(state=tk.DISABLED)
# 显示警告消息
messagebox.showwarning(
"安全警告",
"你的输入内容已被监视,正在发送给你的老板",
parent=result_window
)
tk.Button(result_window, text="关闭", command=result_window.destroy).pack(pady=5)
# 启动主事件循环
self.root.mainloop()
def start_monitoring(self):
self.recorded_input = []
self.listener = keyboard.Listener(on_press=self.on_press)
self.listener.start()
# 10秒后停止监听并通过主线程显示结果
threading.Timer(10.0, lambda: self.root.after(0, self.show_result)).start()
if __name__ == "__main__":
monitor = InputMonitor()
monitor.start_monitoring()
# 启动Tkinter主事件循环
tk.mainloop()
3、小丑头程序
打开程序,出现一个全屏小丑头,让你的朋友 吓一跳。
演示
安装库
pip install Pillow
pip install requests
代码
import tkinter as tk
from PIL import Image, ImageTk
from io import BytesIO
import requests
def show_joker_image():
# 创建一个全屏窗口
root = tk.Tk()
root.attributes('-fullscreen', True) # 全屏显示
root.configure(bg='black') # 背景设为黑色
try:
# 这里可以替换为一个你找的图片URL(需要网络)
response = requests.get(
"https://gips3.baidu.com/it/u=3792672865,2895369421&fm=3042&app=3042&f=JPEG&wm=1,baiduai,0,0,13,9&wmo=0,0&w=512&h=512") # 替换为实际图片URL
img = Image.open(BytesIO(response.content))
except:
root.destroy()
return
# 调整图片大小以适应屏幕
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
img = img.resize((screen_width, screen_height), Image.Resampling.LANCZOS)
img_tk = ImageTk.PhotoImage(img)
# 显示图片
label = tk.Label(root, image=img_tk)
label.pack()
# 点击窗口或按ESC键退出
def close(event=None):
root.destroy()
root.bind("<Escape>", close)
root.bind("<Button-1>", close) # 鼠标左键点击退出
root.mainloop()
if __name__ == "__main__":
show_joker_image()
4、可怕的倒计时关机程序
这是个无法关闭的程序,上面显示倒计时结束后要关机,其实在最后结束弹出 《黑猫警长》的主题曲,吓你朋友一大跳。
演示
代码
import tkinter as tk
from tkinter import messagebox
import webbrowser
class PrankWindow:
def __init__(self):
self.root = tk.Tk()
self.root.title("系统警告")
self.root.geometry("400x200")
self.root.protocol("WM_DELETE_WINDOW", self.prevent_close)
# 使窗口始终置顶
self.root.attributes("-topmost", True)
# 禁用Alt+F4
self.root.bind("<Alt-F4>", lambda e: "break")
self.label = tk.Label(self.root, text="系统将在10秒后自动关闭!\n请保存所有工作!",
font=("Arial", 16), fg="red")
self.label.pack(pady=20)
self.countdown_label = tk.Label(self.root, text="10", font=("Arial", 24))
self.countdown_label.pack()
self.seconds = 10
self.update_countdown()
self.root.mainloop()
def prevent_close(self):
# 什么都不做,防止窗口被关闭
pass
def update_countdown(self):
self.countdown_label.config(text=str(self.seconds))
self.seconds -= 1
if self.seconds >= 0:
self.root.after(1000, self.update_countdown)
else:
self.root.destroy()
self.play_prank()
def play_prank(self):
# 这里替换成你想打开的搞笑视频URL
video_url = "https://www.bilibili.com/video/BV16x411u7Dn"
# 尝试用默认浏览器打开视频
try:
webbrowser.open(video_url)
except:
pass
# 显示"骗到你啦!"的消息框
messagebox.showinfo("骗到你啦!", "哈哈,骗到你啦!电脑不会真的关闭!")
if __name__ == "__main__":
# 尝试隐藏主控制台窗口(仅Windows有效)
try:
import ctypes
kernel32 = ctypes.WinDLL('kernel32')
user32 = ctypes.WinDLL('user32')
kernel32.GetConsoleWindow()
user32.ShowWindow(kernel32.GetConsoleWindow(), 0)
except:
pass
prank = PrankWindow()
5、黑客控制程序
弹出一个窗口,提示 “你的电脑正被黑客控制” ,并且控制朋友的电脑鼠标随机移动十秒,十秒后,等他关闭弹窗,再次弹出 “哈哈,你被骗了吧!”。
演示
安装库
pip install pyautogui
代码
import tkinter as tk
from tkinter import messagebox
import pyautogui
import random
import threading
import time
defmove_mouse_randomly(duration):
start_time = time.time()
screen_width, screen_height = pyautogui.size()
while time.time() - start_time < duration:
# 随机移动鼠标
x = random.randint(0, screen_width)
y = random.randint(0, screen_height)
pyautogui.moveTo(x, y, duration=0.2)
time.sleep(0.1)
defprank():
# 显示第一个警告窗口
root = tk.Tk()
root.withdraw() # 隐藏主窗口
# 在新线程中移动鼠标10秒
mouse_thread = threading.Thread(target=move_mouse_randomly, args=(10,))
mouse_thread.start()
messagebox.showwarning("警告", "你的电脑正被黑客控制")
root.destroy()
# 显示第二个提示窗口
root = tk.Tk()
root.withdraw()
messagebox.showinfo("提示", "哈哈,被骗了吧!")
root.destroy()
if __name__ == "__main__":
# 设置pyautogui的安全措施,防止无法停止
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 0.1
prank()
结尾
今天介绍了五个非常有趣的整蛊脚本,在这个愚人节,赶紧制作一个发给你的朋友吧,希望你们的友谊能够得到升华。