QQ微信轰炸器

​​# 下面是需要下载的模块可以在PyCharm终端和cmd.
# pip install pyautogui
# pip install pyperclip
# pip install pynput


import pyautogui
import pyperclip
import time
from pynput import keyboard
import sys

# 全局标志,用于指示是否停止轰炸
stop_bombing = False


def on_press(key):
    global stop_bombing
    try:
        if key.char == 'l':
            print("检测到'L'键被按下,即将停止轰炸...")
            stop_bombing = True
    except AttributeError:
        pass


def initialize_keyboard_listener():
    """初始化键盘监听器"""
    listener = keyboard.Listener(on_press=on_press)
    listener.start()
    return listener


def get_user_input():
    """获取用户输入并进行验证"""
    try:
        words = input('请输入轰炸的内容: ')
        n = int(input('请输入轰炸的次数: '))
        t = float(input('请输入轰炸的时间间隔(秒): '))
        return words, n, t
    except ValueError:
        print("输入无效,请输入正确的数字。")
        sys.exit(1)


def countdown_timer(seconds):
    """倒计时功能"""
    for i in range(seconds, 0, -1):
        print(f"开始前{i}秒...", end='\r')
        time.sleep(1)


def send_message(x, y, words, interval):
    """发送消息的核心逻辑"""
    pyautogui.click(x, y)
    pyperclip.copy(words)
    pyautogui.hotkey("ctrl", "v")
    pyautogui.press("enter")
    time.sleep(interval)


def main():
    global stop_bombing

    # 初始化键盘监听器
    listener = initialize_keyboard_listener()

    try:
        # 获取用户输入
        words, n, t = get_user_input()

        print('请在十秒钟之内将鼠标移动到聊天窗口...')
        for i in range(10, 0, -1):
            print(f"开始前{i}秒...")
            time.sleep(1)

        # 开始计时
        start_time = time.time()

        x, y = pyautogui.position()
        post_count = 0  # 初始化张贴次数计数器

        for i in range(n):
            if stop_bombing:  # 检查是否需要停止
                break
            try:
                send_message(x, y, words, t)
                post_count += 1  # 每成功张贴一次,计数器加1
            except Exception as e:
                print(f"发生错误: {e}")
                break

        elapsed_time = time.time() - start_time
        hours, remainder = divmod(elapsed_time, 3600)
        minutes, seconds = divmod(remainder, 60)
        print(f"\n聊天轰炸过程耗时:{int(hours)}小时 {int(minutes)}分钟 {seconds:.2f}秒")
        print(f"共张贴了{post_count}次")  # 输出张贴次数

    except KeyboardInterrupt:
        print("\n程序已终止。")
    finally:
        if hasattr(listener, 'stop'):
            listener.stop()  # 确保监听器停止


if __name__ == "__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值