首先說一下寫這個腳本的原因吧: 為了在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(win32con.CF_UNICODETEXT, msg)
w.CloseClipboard()
# 獲取窗口句柄
handle = win32gui.FindWindow(None, name)
# 每隔interval時間發送一次qq消息
pre_time = int(round(time.time() * 1000))
times = 0
while True:
if times >= total_times:
break
cur_time = int(round(time.time() * 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
效果如下所示:
閱讀更多 神祕的程序員 的文章