騰訊會議自動化入會腳本


騰訊會議自動化入會腳本

在網課已經進入千家萬戶的今天,我們在家上網課已經是一個必不可少的事情了,但是有時侯因為一些事情,無法准時上課,然后就被老師扣了成績,正好我們老師使用的是騰訊會議(其他軟件也一樣),所以就想打算寫一個能夠定時自動登入會議的自動化腳本,於是就有了如下的挖坑之旅:

主程序代碼如下

import os
import pandas as pd
import pyautogui
import time
from datetime import datetime
import cv2
def imgAutoCick(tempFile, whatDo, debug=False):
    '''
        temFile :需要匹配的小圖
        whatDo  :需要的操作
                pyautogui.moveTo(w/2, h/2)# 基本移動
                pyautogui.click()  # 左鍵單擊
                pyautogui.doubleClick()  # 左鍵雙擊
                pyautogui.rightClick() # 右鍵單擊
                pyautogui.middleClick() # 中鍵單擊
                pyautogui.tripleClick() # 鼠標當前位置3擊
                pyautogui.scroll(10) # 滾輪往上滾10, 注意方向, 負值往下滑
        更多詳情:https://blog.csdn.net/weixin_43430036/article/details/84650938
        debug   :是否開啟顯示調試窗口
    '''
    pyautogui.screenshot('big.png')
    gray = cv2.imread("big.png",0)
    img_template = cv2.imread(tempFile,0)
    w, h = img_template.shape[::-1]
    res = cv2.matchTemplate(gray,img_template,cv2.TM_SQDIFF)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
    top = min_loc[0]
    left = min_loc[1]
    x = [top, left, w, h]
    top_left = min_loc
    bottom_right = (top_left[0] + w, top_left[1] + h)
    pyautogui.moveTo(top+h/2, left+w/2)
    whatDo(x)

    if debug:
        img = cv2.imread("big.png",1)
        cv2.rectangle(img,top_left, bottom_right, (0,0,255), 2)
        img = cv2.resize(img, (0, 0), fx=0.5, fy=0.5, interpolation=cv2.INTER_NEAREST)
        cv2.imshow("processed",img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    os.remove("big.png")
    
def signIn(meeting_id):
    '''
    本模塊主要引入騰訊會議號,進入會議之中;
    '''
    # 這一步是使用騰訊會議的絕對路徑調用並啟動騰訊會議
    os.startfile("C:\Program Files (x86)\Tencent\WeMeet\wemeetapp.exe")
    time.sleep(7)# 等待啟動
    imgAutoCick("joinbtn.png", pyautogui.click, False)
    time.sleep(1)# 截取需要點擊的地方的小
    imgAutoCick("meeting_id.png", pyautogui.click, False)
    pyautogui.write(meeting_id)
    time.sleep(2)
    imgAutoCick("final.png", pyautogui.click, False)
    time.sleep(1)

while True:
    now = datetime.now().strftime("%m-%d-%H:%M")
    if now=="09-12-02:21":
        meeting_id = '**********'# 此處填入會議號
        time.sleep(5)
        signIn(meeting_id)
        time.sleep(2)
        print('signed in')
        break
    

總結

在一開始我使用的是 pyautogui的圖像識別並且區點擊的算法區識別圖像做匹配的,但是這種算法,我沒有實驗成功過,一次都沒有就有點尷尬。我真的有點懷疑這個算法能不能用(bushi)后來考慮到用模板匹配的話,open-cv是比較適合的,而且我上學期也用過一段時間的opencv,就在度娘上找了一下,發現果然有這套模板匹配的函數,在用了這個算法之后整個腳本的成功率直線上升。果然opencv碉堡了!!

其實這個腳本還是一個比較原始的狀態在時間的設置和會議號的傳遞上還存在比較大的改進的空間,但是基本的核心模塊已經實現了就先這樣吧,等有空再去修修補補。

主要參考文章有:opencv算法, Automating_Zoom


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM