Python實現(xiàn)自動發(fā)消息自定義內(nèi)容的操作代碼
有時候讓了解放雙手,讓電腦來幫我們自動發(fā)一些我們想要發(fā)的消息,挺省力的,比如說白天寫好了演講稿,晚上要在群里進行文字演講,那么我們就可以用腳本來實現(xiàn)自動復(fù)制、粘貼和發(fā)送文字的功能,從而解放我們自己,不用親自在電腦上反復(fù)干這個Ctrl C/Ctrl V這個累活兒。
還可以把定時多長時間后發(fā)送指定內(nèi)容,這下子就不用坐在電腦前面到點了發(fā)彈幕了。

多長時間發(fā)1條消息,又或者1秒發(fā)多少條信息,都可自由設(shè)置,時間設(shè)得短的話,一秒發(fā)幾十條都沒問題,只是太快了會形成刷屏的效果…
今天就把這個技巧給大家分享一下,很簡單,沒有多少代碼。
一、效果
我們先來看一下效果,我這里設(shè)置的是4s后開始發(fā)送,間隔0.5s發(fā)一次。
用Python實現(xiàn)電腦自動發(fā)消息,內(nèi)容自定義,快慢均可
二、開發(fā)環(huán)境
- 系統(tǒng):Windows10 64位
- Python版本:3.9
- Pycharm版本:2021.1.3
- 模塊(庫):os、time、pyautogui、pyperclip
三、關(guān)鍵步驟解析
實現(xiàn)的代碼文件主要有兩個,目的分別是:獲取聊天窗口位置和實現(xiàn)自動發(fā)送消息功能,用到的庫在上面已經(jīng)提過了,在開始寫代碼之前,先把要用的庫先pip下載裝好,下面就不再說這個了。
1.獲取聊天窗口位置(源碼1)
在我們發(fā)消息之前,得需要知道聊天窗口的位置在哪,即鼠標停留在哪里才能定位到聊天窗口的輸入界面,也就是鼠標的x和y坐標是多少。
這里我用的是os、time和pyautogui這三個庫,獲取鼠標的實時位置的:
try:
while True:
print("Press Ctrl-C to end")
x, y = pag.position() # 返回鼠標的坐標
posStr = "Position:" + str(x).rjust(4) + ',' + str(y).rjust(4)
print(posStr) # 打印坐標
time.sleep(0.2)
os.system('cls') # 清楚屏幕
except KeyboardInterrupt:
print('end....')
只要程序運行起來之后,每當我們移動鼠標,鼠標的x和y值就會自動發(fā)聲改變并打印出來,我們只需要把聊天窗口調(diào)出來,把鼠標定位到聊天的窗口的輸入位置就能獲取到此時的x和y值,有了這個x和y值之后,我們才能告訴下面的發(fā)消息程序要在哪里進行粘貼和推送。

當然了,獲取鼠標位置的方式有很多種,你們也可以去嘗試一下其他方式的獲取。
2.實現(xiàn)自動發(fā)送消息功能
在獲取了x和y的值之后,我們要做的當然是寫程序?qū)崿F(xiàn)“復(fù)制文本→粘貼文本→發(fā)送消息”,這里就需要用到 pyautogui 來控制鍵盤和鼠標,用 pyperclip 來控制電腦進行復(fù)制和粘貼,以及用 time 這個庫進行一下時間的控制。
首先我們把需要發(fā)送的內(nèi)容提前準備好,放在content里面,到時候直接拿來用就可以了,內(nèi)容可以自定義修改,比如這樣的:
content = """ 呼叫龍叔! 第二遍! 第三遍! 第四遍! 第五遍! """
我們在運行代碼之后需要切換到聊天界面,中間需要時間去手動做一下這個操作,所以在復(fù)制粘貼和發(fā)送代碼之前,我們需要留出一些時間給自己,我這里先設(shè)定了4s的時間延遲,當然也可以設(shè)置幾個小時之后開始發(fā)消息。
time.sleep(4)
接下來就是怎么實現(xiàn)復(fù)制粘貼和發(fā)送了:
for line in list(content.split("\n"))*10:
if line:
pyautogui.click(669,687) #鼠標點擊并定位到聊天窗口
pyperclip.copy(line) #復(fù)制該行
pyautogui.hotkey("ctrl","v") #粘貼,mac電腦則把ctrl換成command
pyautogui.typewrite("\n") #發(fā)送
time.sleep(5) #每次發(fā)完間隔5s
到了這里,所有的東西就已經(jīng)完成了,如果覺得5s發(fā)送1條消息太快,可以修改time.sleep(5)里面的5這個數(shù)值,比如說10s發(fā)一條消息;如果你設(shè)置成0.01秒,那么就會是一個快速發(fā)消息的刷屏效果了…
for循環(huán)中的“*10”控制循環(huán)次數(shù),也就是讓它發(fā)10次文本的樣子,也可以設(shè)置不讓它循環(huán),把 list(content.split("\n"))*10 改成 content.split("\n") 即可。
大致的方法就是上面這些,需要源碼可以私聊我,你們也可以去嘗試別的方式實現(xiàn),說白了就是自動發(fā)消息,實現(xiàn)方式有很多種,比如更高級一點的直接帶著xookie調(diào)api發(fā)送等等,以及按鍵精靈也是能實現(xiàn)這個功能,更多精彩,等你自己去挖掘了。
總結(jié)
這個腳本的本質(zhì)是實現(xiàn)電腦自動發(fā)消息,只是間隔時間的設(shè)置導(dǎo)致它也具備快速發(fā)消息的功能,不僅僅是QQ,微信也是一樣能用。
基本的原理就是這樣了,你們還可以思考一下,如何在這個基礎(chǔ)上,讓程序在幾個小時之后啟動,間隔幾十分鐘發(fā)一次,徹底解放自己。
到此這篇關(guān)于Python實現(xiàn)自動發(fā)消息自定義內(nèi)容功能的文章就介紹到這了,更多相關(guān)python自動發(fā)消息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在FastAPI中改變響應(yīng)狀態(tài)碼的兩種方法
FastAPI,顧名思義,是一個快速、現(xiàn)代、高性能的web框架,用于用Python構(gòu)建后端api,響應(yīng)狀態(tài)碼是一個三位數(shù),表示請求的結(jié)果,在這篇簡明的基于示例的博文中,我將向你展示在FastAPI中更改響應(yīng)狀態(tài)代碼的兩種不同方法,需要的朋友可以參考下2025-02-02
Python使用matplotlib實現(xiàn)交換式圖形顯示功能示例
這篇文章主要介紹了Python使用matplotlib實現(xiàn)交換式圖形顯示功能,結(jié)合實例形式詳細分析了Python基于matplotlib模塊的數(shù)值運算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
Python實現(xiàn)連接MySQL數(shù)據(jù)庫的常見方法總結(jié)
這篇文章主要為大家介紹了兩種Python中用來連接 MySQL 數(shù)據(jù)庫的方法,并且針對這兩種方法,我們還將對代碼進行封裝和優(yōu)化,提高程序的可讀性和健壯性,需要的可以收藏一下2023-05-05
Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作示例
這篇文章主要介紹了Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作,涉及Python基于先序遍歷和中序遍歷構(gòu)造二叉樹,再后序遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
python Django編寫接口并用Jmeter測試的方法
這篇文章主要介紹了python Django編寫接口并用Jmeter測試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07

