開局一張圖:被這些PS學姐搞煩了,一直想着那天要是他們再來就。。。今天這個想法成真了。
效果圖:代碼在最下面,當然啦這樣做其實是不好的,我也就是圖一樂,但是哪怕是真的不在乎也要小心被封號。對於這種嘛真的有心情還是不要爆破,搞個自動回覆,當一個禮貌的復讀機就行了。
while True:
#打開剪貼板
w.OpenClipboard()
#清空剪貼板
w.EmptyClipboard()
#設置剪貼板內容
w.SetClipboardData(win32con.CF_UNICODETEXT, "aaa")
#獲取剪貼板內容
date = w.GetClipboardData()
#關閉剪貼板
w.CloseClipboard()
print(date)
w.SetClipboardData(win32con.CF_UNICODETEXT, “aaa”)每次都相當於執行了Ctrl+C
當然Win10系統對重複的複製有一個處理機制,就是如下圖,第一條是“aaa”,你們無論多少次複製,隊列都不會增長。
# 打開剪貼板
w.OpenClipboard()
# 清空剪貼板
w.EmptyClipboard()
# # 設置剪貼板內容
w.SetClipboardData(win32con.CF_UNICODETEXT, "bbb")
while True:
# 獲取剪貼板內容
data = w.GetClipboardData()
print(data)
time.sleep(1.5) # 延緩進程
運行後不管什麼時候你用Ctrl+C複製了一下,雖然系統的剪貼板已經改變(如下圖),但是程序中的得到的剪貼板的內容任然是之前設置的,似乎這兩個剪貼板不完全關聯在一起。
import win32clipboard as w
# 關閉剪貼板
w.CloseClipboard()
關閉以後就不能操作例如:
print(w.GetClipboardData()) #(1418, 'GetClipboardData', '線程沒有打開的剪貼板。')
但是任然可以這樣
# 把剪切板內容粘貼到qq窗口
win32gui.SendMessage(QMagHandle, win32con.WM_PASTE, 0, 0)
這個紅色的可以不用管,可能是內部實現方式比較特殊,所以PyCahrm認爲不存在這個模塊,但是是可以正常使用的,我就不知道一直去查爲什麼
爆破代碼
pip install pywin32 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
import win32gui
import win32con
import win32clipboard as w
import time
def 爆破PS學姐(QMagHandle):
# 把剪切板內容粘貼到qq窗口
win32gui.SendMessage(QMagHandle, win32con.WM_PASTE, 0, 0)
# 按下後鬆開回車鍵,發送消息
win32gui.SendMessage(QMagHandle, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.SendMessage(QMagHandle, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
def InitMsg(msg):
# 打開剪貼板
w.OpenClipboard()
# 清空剪貼板
w.EmptyClipboard()
# 設置剪貼板內容
w.SetClipboardData(win32con.CF_UNICODETEXT, msg)
# 關閉剪貼板
w.CloseClipboard()
#返回值爲對應QQ消息窗口的handle,參數爲QQ消息窗口的名字
def 初始化QQ窗口(QWinName):
# 獲取qq窗口句柄,騰訊聊天窗口類名'TXGuiFoundation',不過沒有重名的可以不寫
QMagHandle = win32gui.FindWindow(None, name)
if QMagHandle == 0:
raise Exception('未找到窗口!')
else:
# 顯示窗口
win32gui.ShowWindow(QMagHandle, win32con.SW_SHOW)
return QMagHandle
if __name__ == '__main__':
name = '' # QQ聊天窗口的名字
msg = ""
f = 1 #發消息的頻率,默認1 sec
InitMsg(msg)
try:
QMagHandle = 初始化QQ窗口(name)
while True:
爆破PS學姐(QMagHandle)
time.sleep(f) # 延緩進程
except Exception as e:
print(e)
附贈一些找到的有用的資料:
如果你想不用剪貼板直接通過win32gui.SendMessage()
發送消息,參考:windows下用python3通過win32api往記事本里寫入字符串windows下用python3通過win32api往記事本里寫入字符串
Python筆記之通過PyWin32模塊實現在QQ聊天窗口自動發送消息
Win32消息處理API—PostMessage