ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

腾讯会议自动化入会脚本

2021-09-12 03:00:47  阅读:2073  来源: 互联网

标签:pyautogui img top 腾讯 cv2 time 自动化 png 入会


腾讯会议自动化入会脚本

在网课已经进入千家万户的今天,我们在家上网课已经是一个必不可少的事情了,但是有时侯因为一些事情,无法准时上课,然后就被老师扣了成绩,正好我们老师使用的是腾讯会议(其他软件也一样),所以就想打算写一个能够定时自动登入会议的自动化脚本,于是就有了如下的挖坑之旅:

主程序代码如下

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 = '522 612 768'
        time.sleep(5)
        signIn(meeting_id)
        time.sleep(2)
        print('signed in')
        break
    

总结

在一开始我使用的是 pyautogui的图像识别并且区点击的算法区识别图像做匹配的,但是这种算法,我没有实验成功过,一次都没有就有点尴尬。我真的有点怀疑这个算法能不能用(bushi)后来考虑到用模板匹配的话,open-cv是比较适合的,而且我上学期也用过一段时间的opencv,就在度娘上找了一下,发现果然有这套模板匹配的函数,在用了这个算法之后整个脚本的成功率直线上升。果然opencv碉堡了!!

其实这个脚本还是一个比较原始的状态在时间的设置和会议号的传递上还存在比较大的改进的空间,但是基本的核心模块已经实现了就先这样吧,等有空再去修修补补。

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

标签:pyautogui,img,top,腾讯,cv2,time,自动化,png,入会
来源: https://www.cnblogs.com/oziasly/p/15257280.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有