# 下面是需要下载的模块可以在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()
QQ微信轰炸器
于 2025-01-12 16:27:49 首次发布