首先说一下写这个脚本的原因吧: 为了在q群中抢活动名额,不断的往q群中发自己的名字。
脚本是用python写的,调用了pywin32模块,"pywin32是一个python库,为python提供了访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。"
关于pywin32的安装就不多说了,使用anaconda直接一条命令安装,关于自动发消息的操作实际上分为四步:
- 将要发送的消息复制到粘贴板中
- 获取要发送的窗口句柄
- 粘贴消息到窗口中
- 模拟按下Enter键的操作发送消息
在代码中也写了详细的注释,很好理解的。直接上代码把。
import win32gui import win32con import win32clipboard as w # 时间模块 import time import datetime # 发送的消息 msg = "Fuck" # 窗口名字 name = "你看我叼吗" # 间隔时间ms interval = 100 # 发送次数 total_times = 100 if __name__=='__main__': # 将测试消息复制到剪切板中 w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData, msg) w.CloseClipboard() # 获取窗口句柄 handle = win32gui.FindWindow(None, name) # 每隔interval时间发送一次qq消息 pre_time = int(round() * 1000)) times = 0 while True: if times >= total_times: break cur_time = int(round() * 1000)) if (cur_time - pre_time) >= interval: # 复制粘贴板中的消息 win32gui.SendMessage(handle, 770, 0, 0) # 模式按下Enter键发送消息 win32gui.SendMessage(handle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) print("发送", msg, "成功") pre_time = cur_time times += 1效果如下所示: