<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近在看測試相關的內容,發現自動化測試很好玩,就決定做一個自動回覆QQ訊息的指令碼(我很菜)
這個自動化指令碼需要用到3個模組,如果要使用這個指令碼的朋友,自己的python中可能沒有安裝這些模組,所以就可以安裝一下
第1個模組:pyautogui
這個模組主要是用來讓程式自動控制滑鼠和鍵盤的一系列操作來達到自動化測試的目的。
在cmd下輸入安裝命令:pip install pyautogui
第2個模組:pyperclip
這個模組主要用於複製剪貼簿裡的內容,向剪貼簿寫入內容
在cmd下輸入安裝命令:pip install pyperclip
第3個模組:psutil
psutil是一個跨平臺庫,能夠輕鬆實現獲取系統執行的程序和系統利用率(包括CPU、記憶體、磁碟、網路等)資訊
在cmd下輸入安裝命令:pip install psutil
如何判斷QQ是否處啟動?
我們知道QQ如果需要執行,首先作業系統給它分配資源,資源中就包括一個叫程序pid的內容,pid是程序的唯一標識,pid和程序是1:1的關係。通過pid就可以知道程序的名字,判斷這個名字是否與"QQ.exe"相等就可以知道QQ是否啟動
#獲取全部程序的pid pl = psutil.pids() for pid in pl: # 判斷QQ.exe是否執行 if psutil.Process(pid).name() == "QQ.exe":
如果QQ沒有啟動,需要啟動QQ,並登入
我們平時啟動QQ的時候,首先需要找到QQ的快捷方式,然後雙擊,等到QQ的登入介面出現後,再點選登入或者按確認鍵(“enter”)。
自動化也是一樣的。
os模組中有一個方法os.startfile(dir),引數就是"QQ.exe"在磁碟中的存放位置,登入介面出現後,我們這裡採用按回車(“enter”)的方式進行登入
os.startfile(QQ_dir) time.sleep(3) gui.write(["enter"]) time.sleep(5)
QQ成功登入後(我的預設是免打擾),在桌面的右下角會出現QQ的小圖示
如果此時有人發來訊息,則會有提示符
因此最開始,就需要對這個QQ訊息提示符進行截圖,通過判斷桌面這個圖示是否存在,來判斷是否有訊息,如果有訊息,我們只需要點選這個QQ這個圖示,就能彈出對話方塊
if gui.locateOnScreen("./image/receive_message1.png", confidence=0.8) is not None: gui.click(gui.center(gui.locateOnScreen("./image/receive_message1.png", confidence=0.8)))
彈出對話方塊後,預設是處於輸入狀態的。需要用到pyperclip.copy(“需要傳送的內容”)剪下內容到貼上板上,再使用pyautogui.hotkey(“ctrl”, “v”)進行貼上,此時內容就已經在輸入框中,按下"enter"和"esc"(pyautogui.write([“enter”, “esc”]))進行傳送,然後關閉對話方塊
lip.copy("自動回覆") gui.hotkey("ctrl", "v") gui.write(["enter", "esc"])
不過在我是將我需要傳送的資料存放在了一個文字裡,每次都隨機選擇一個傳送
import os import random import psutil import pyautogui as gui import pyperclip as lip import time #所有的檔案路徑都需要自己去修改 QQ_dir = r'D:BinQQScLauncher.exe' def Proc_exist(): pl = psutil.pids() for pid in pl: # 判斷QQ.exe是否執行 if psutil.Process(pid).name() == "QQ.exe": return True return False def QQ_login(): # 啟動指定路徑下的QQ os.startfile(QQ_dir) time.sleep(3) gui.write(["enter"]) time.sleep(5) def Readfile(): with open("./image/text.txt", 'r', encoding="UTF-8") as f: filetxt = f.readlines() return filetxt def Sendmessage(filetxt): filetxtlen = len(filetxt) #亂數取0到len-1 ran = random.randint(0, filetxtlen-1) #剪下內容 lip.copy(filetxt[ran]) #貼上 gui.hotkey("ctrl", "v") gui.write(["enter", "esc"]) def Polling(): if Proc_exist() == False: QQ_login() while True: # confidence=0.8是匹配精確度,需要安裝opencv pip install opencv-python #判斷是否來訊息 if gui.locateOnScreen("./image/receive_message1.png", confidence=0.8) is not None: # 點選圖片在螢幕中出現的中間位置,就能彈出對話方塊 gui.click(gui.center(gui.locateOnScreen("./image/receive_message1.png", confidence=0.8))) time.sleep(2) # 判斷是否有訊息漫遊驗證,如果有,把它關掉 if gui.locateOnScreen("./image/img.png", confidence=0.8) is not None: location = gui.center(gui.locateOnScreen("./image/img.png")) gui.click(location.x+200, location.y) time.sleep(2) Sendmessage(filetxt) # 將text.txt的資料讀到列表中 filetxt = Readfile() Polling()
if gui.locateOnScreen("./image/img.png", confidence=0.8) is not None
的意思:
彈出對話方塊後可能會存在訊息漫遊安全驗證,所以需要判斷,如果存在,則需要關掉驗證,再傳送訊息
receive_message1.png:
img.png:
使用的時候記得把圖片路徑換成自己的,記得QQ開免打擾,開了免打擾好像才有訊息提示的黃色框
到此這篇關於用python實現自動回覆QQ訊息(不到60行)的文章就介紹到這了,更多相關python自動回覆QQ訊息內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45