python消息轰炸

该程序利用Python的pynput模块创建了一个界面,用户可以设置消息发送的循环次数、时间间隔和内容。如果内容是文件路径,则程序会逐行读取文件内容发送。程序启动后有倒计时,结束后会在光标所在位置打印消息。
摘要由CSDN通过智能技术生成

用python写一个自动发消息的小程序。并且可以在界面上设置发送消息的循环次数,每次循环的时间间隔和发送消息的内容。

注:需要python具有模块pynput

(点击开始运行,输入法切换为英文,把光标聚焦到需要发送的地方,比如微信)
在这里插入图片描述
输入循环次数: 设置消息发送的次数
每次循环间隔(ms): 设置发送一条消息的时间间隔500ms就是半秒发送一条
输入消息内容: 如果消息内容是一个存在的文件路径,则会一行一行读取文件内容进行发送,否则就发送输入框的文本内容

开始运行: 点击开始运行会进入五秒钟的到倒计时,倒计时结束后会自动打印消息内容到光标聚焦的位置,点击结束运行则会结束。

完整源码:

import time
import os
from pynput import mouse, keyboard
import tkinter as tk
import threading


def msg_send_loop():
	
	global startflag
	global num_loops
	global step_loops
	global msg_loops

	m_mouse = mouse.Controller()
	m_keyboard = keyboard.Controller()
	i = 5

	while(startflag):
		str="准备... {}s" 
		button.configure(text=str.format(i))
		time.sleep(1) 
		i -= 1
		if i <= 0 :
			break
	button.configure(text="结束运行")
	i = 1

	while(startflag):
		
		if os.path.isfile(msg_loops) :
			f = open(msg_loops, 'r',encoding='utf-8')   
			for line in f:        
				m_keyboard.type(line)
				time.sleep(step_loops/1000)
				i += 1
				if i > num_loops or startflag != True: 
					break
			m_keyboard.press(keyboard.Key.enter)
			m_keyboard.release(keyboard.Key.enter)
			f.close()
		else :
			m_keyboard.type(msg_loops)
			m_keyboard.press(keyboard.Key.enter)
			m_keyboard.release(keyboard.Key.enter)
			time.sleep(step_loops/1000)
			i += 1

		if i > num_loops : 
			break
		
	startflag = False
	button.configure(text="开始运行")
	entry.config(state='normal')
	entry1.config(state='normal')
	entry2.config(state='normal')

def start_program():

	global startflag
	global num_loops
	global step_loops
	global msg_loops

	num_loops = int(entry.get())
	step_loops = int(entry1.get())
	msg_loops = str(entry2.get())

	if startflag :
		startflag = False
		button.configure(text="开始运行")

	else :
		startflag = True
		button.configure(text="结束运行")
		entry.config(state='disabled')
		entry1.config(state='disabled')
		entry2.config(state='disabled')
		
	button.focus_set()	
	t = threading.Thread(target = msg_send_loop)
	t.start()


if __name__ == "__main__":

	root = tk.Tk()
	root.geometry("250x180")

	label = tk.Label(root, text="输入循环次数:")
	label.pack()
	entry = tk.Entry(root,textvariable=tk.StringVar(value="10"))
	entry.pack()

	label1 = tk.Label(root, text="每次循环间隔(ms):")
	label1.pack()
	entry1 = tk.Entry(root,textvariable=tk.StringVar(value="500"))
	entry1.pack()

	label2 = tk.Label(root, text="输入消息内容:")
	label2.pack()
	entry2 = tk.Entry(root,textvariable=tk.StringVar(value="msg loops"))
	entry2.pack()

	startflag=False
	button = tk.Button(root, text="开始运行", command=start_program)
	button.pack()

	root.attributes('-topmost', True)
	root.mainloop()



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

boonion

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

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

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

打赏作者

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

抵扣说明:

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

余额充值