基于Python实现微信表情轰炸机实现与界面设计

实现效果:在这里插入图片描述

介绍:

本教程将向您展示如何使用Python和Tkinter库创建一个微信表情轰炸机。该程序将允许用户选择表情包并设置轰炸次数和间隔时间,然后自动在微信对话框中发送表情。本教程还包含了一个用户界面,使用户可以方便地选择和配置轰炸参数。

环境配置:

  • Python 3.x
  • Tkinter库
  • pynput库(用于键盘和鼠标控制)

项目分布:

  1. 主窗口:包含输入框、列表框、按钮等控件,用于用户输入轰炸参数和选择表情包。
  2. 表情包列表:显示所有可用的微信表情,用户可以选择多个表情进行轰炸。
  3. 轰炸参数设置:包括轰炸次数、间隔时间等参数的设置。
  4. 控制按钮:包括开始轰炸和停止轰炸的按钮。

详细代码:

import tkinter as tk
from tkinter import ttk, messagebox, simpledialog
import random
import threading
import time
from pynput.keyboard import Controller as KB  # 控制键盘输入
from pynput.mouse import Controller, Button  # 控制鼠标点击

# 微信表情列表
Wechat_expression = [
    "[微笑]", "[撇嘴]", "[色]", "[发呆]", "[得意]", "[流泪]", "[害羞]", "[闭嘴]", "[睡]", "[大哭]",
    # ... (其余表情)
    "[烟花]"
]

# 键盘控制函数
def keyboardInput(string):
    keyboard = KB()
    keyboard.type(string)

# 鼠标控制函数
def mouseClick():
    mouse = Controller()
    mouse.press(Button.left)
    mouse.release(Button.left)

# 响应函数
def response(number, interval, selected_exp):
    for i in range(number):
        if stop_bombing.is_set():  # 检查是否需要停止
            break
        sentence = random.choice(selected_exp)
        keyboardInput(sentence)
        mouseClick()
        time.sleep(interval)  # 每条消息间隔
        progress_var.set(i + 1)  # 更新进度条

# 添加选中的表情包到轰炸列表
def add_selected_exp():
    selected_indices = listbox.curselection()
    selected_exp = [Wechat_expression[i] for i in selected_indices]
    if not selected_exp:
        messagebox.showwarning("警告", "请至少选择一个表情包!")
        return
    return selected_exp


# 开始轰炸线程
def start_bombing_thread():
    try:
        number = int(entry.get())
        interval = float(interval_entry.get())
        selected_exp = add_selected_exp()
        if not selected_exp:
            return
        stop_bombing.clear()  # 重置停止标志
        if scheduled_bombing.get():
            schedule_time_str = scheduled_time_entry.get()
            try:
                schedule_time = time.strptime(schedule_time_str, "%Y-%m-%d %H:%M:%S")
                schedule_time = time.mktime(schedule_time)
                current_time = time.time()
                if current_time < schedule_time:
                    time.sleep(schedule_time - current_time)
            except ValueError:
                messagebox.showerror("错误", "请输入正确的日期时间格式!")
                return
        threading.Thread(target=response, args=(number, interval, selected_exp)).start()
    except ValueError:
        messagebox.showerror("错误", "请输入有效的数字!")

# 停止轰炸
def stop_bombing_callback():
    stop_bombing.set()

# 创建主窗口
root = tk.Tk()
root.title("微信表情轰炸机")
# 设置窗口大小和位置
root.geometry("600x500+200+200")
# 创建输入框
entry_label = tk.Label(root, text="轰炸次数:")
entry_label.pack()
entry = tk.Entry(root)
entry.pack()
# 创建间隔时间输入框
interval_label = tk.Label(root, text="间隔时间(秒):")
interval_label.pack()
interval_entry = tk.Entry(root)
interval_entry.pack()
interval_entry.insert(0, "0.4")  # 默认间隔时间
# 创建表情包选择列表
listbox_label = tk.Label(root, text="选择表情包:")
listbox_label.pack()
listbox = tk.Listbox(root, selectmode='multiple', height=10)
for exp in Wechat_expression:
    listbox.insert(tk.END, exp)
listbox.pack()
# 创建确认选择的按钮
add_button = tk.Button(root, text="确认选择", command=add_selected_exp)
add_button.pack()
# 创建定时轰炸选项
scheduled_bombing = tk.BooleanVar()
scheduled_checkbutton = tk.Checkbutton(root, text="定时轰炸", variable=scheduled_bombing)
scheduled_checkbutton.pack()
# 创建定时时间输入框
scheduled_time_label = tk.Label(root, text="设定时间(YYYY-MM-DD HH:MM:SS):")
scheduled_time_label.pack()
scheduled_time_entry = tk.Entry(root)
scheduled_time_entry.pack()
# 创建进度条
progress_var = tk.IntVar()
progress_bar = ttk.Progressbar(root, length=200, maximum=100, variable=progress_var, mode='determinate')
progress_bar.pack()
# 创建启动按钮
start_button = tk.Button(root, text="开始轰炸", command=start_bombing_thread)
start_button.pack()

# 创建重复模式选项
repeat_mode = tk.BooleanVar()
repeat_checkbutton = tk.Checkbutton(root, text="重复模式", variable=repeat_mode)
repeat_checkbutton.pack()

# 创建重复次数输入框
repeat_label = tk.Label(root, text="重复次数:")
repeat_label.pack()
repeat_entry = tk.Entry(root)
repeat_entry.pack()
repeat_entry.insert(0, "1")  # 默认重复一次

# 创建重复间隔时间输入框
repeat_interval_label = tk.Label(root, text="重复间隔时间(分钟):")
repeat_interval_label.pack()
repeat_interval_entry = tk.Entry(root)
repeat_interval_entry.pack()
repeat_interval_entry.insert(0, "5")  # 默认间隔5分钟

# 创建表情包管理按钮
def manage_expression():
    # 用户可以添加、删除和编辑自定义表情包列表
    pass  # 实现表情包管理功能

manage_button = tk.Button(root, text="管理表情包", command=manage_expression)
manage_button.pack()

# 创建日志记录功能
def log_bombing():
    # 记录轰炸活动的日志
    pass  # 实现日志记录功能

log_button = tk.Button(root, text="查看日志", command=log_bombing)
log_button.pack()

# 创建停止按钮
stop_bombing = threading.Event()  # 用于停止轰炸的线程事件
stop_button = tk.Button(root, text="停止轰炸", command=stop_bombing_callback)
stop_button.pack()

# 运行主循环
root.mainloop()

总结:

本教程向您展示了如何使用Python和Tkinter库创建一个微信表情轰炸机。通过本教程,您应该能够理解如何使用Tkinter创建图形用户界面,以及如何使用pynput库进行键盘和鼠标控制。希望这个教程能够帮助您更好地理解Python在图形界面开发方面的应用。

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序熊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值