png
py文件
import os
import pyautogui
import time
from typing import Callable, Tuple
from datetime import datetime
import cv2
import schedule#通过图像模板匹配在屏幕上找到指定区域并操作
def imgAutoClick(tempFile: str, whatDo: Callable[[Tuple[int, int, int, int]], None], debug: bool = False):#截图screenshot_path = 'big.png'pyautogui.screenshot(screenshot_path)#加载和处理图像gray = cv2.imread(screenshot_path, cv2.IMREAD_GRAYSCALE)img_template = cv2.imread(tempFile, cv2.IMREAD_GRAYSCALE)#获取模板尺寸w, h = img_template.shape[::-1]#模板匹配res = cv2.matchTemplate(gray, img_template, cv2.TM_SQDIFF)min_val, _, min_loc, _ = cv2.minMaxLoc(res)#计算边界框坐标top_left = min_locbottom_right = (top_left[0] + w, top_left[1] + h)#移动鼠标并执行操作pyautogui.moveTo(top_left[0] + w / 2, top_left[1] + h / 2)whatDo((top_left[0], top_left[1], w, h))#调试if debug: img = cv2.imread(screenshot_path)cv2.rectangle(img, top_left, bottom_right, (0, 0, 255), 2)img_resized = cv2.resize(img, (0, 0), fx=0.5, fy=0.5, interpolation=cv2.INTER_NEAREST)cv2.imshow("Processed", img_resized)cv2.waitKey(0)cv2.destroyAllWindows() #清理截图os.remove(screenshot_path)#登录会议
def signIn(meeting_id):#会议路径os.startfile(r"xxxxxxxx")time.sleep(10)#会议图标imgAutoClick("xxxxtubiao.png", pyautogui.click, False)time.sleep(1)#加入会议imgAutoClick("xxxxjoinbtn.png", pyautogui.click, False)time.sleep(1)#输入会议号imgAutoClick("xxxxmeeting_id.png", pyautogui.click, False)pyautogui.write(meeting_id)time.sleep(2)#最后加入会议imgAutoClick("xxxxxfinal.png", pyautogui.click, False)time.sleep(1)#再次登录会议
def signIn_two(meeting_id):#加入会议imgAutoClick("xxxxxxjoinbtn.png", pyautogui.click, False)time.sleep(1)#输入会议号imgAutoClick("xxxxxmeeting_id.png", pyautogui.click, False)pyautogui.write(meeting_id)time.sleep(2)#最后加入会议imgAutoClick("xxxxxfinal.png", pyautogui.click, False)time.sleep(1)def job():while True:#获取当前时间now = datetime.now()#判断是否是周六if now.weekday() == 5:#开始时间start_time = datetime(now.year, now.month, now.day, 14, 0, 0).strftime("%H:%M:%S")#结束时间end_time = datetime(now.year, now.month, now.day, 17, 30, 0).strftime("%H:%M:%S")#当前时间current = now.strftime("%H:%M:%S")#会议号meeting_id = '11111111'#间隔一小时进行操作if start_time <= current <= end_time:if current == "14:00:00":signIn(meeting_id)time.sleep(5)elif current == "15:00:00":signIn_two(meeting_id)time.sleep(5)elif current == "16:00:00":signIn_two(meeting_id)time.sleep(5)elif current == "17:00:00":signIn_two(meeting_id)time.sleep(5)else:print("Today is not Saturday.")breakif __name__ == '__main__':#设置定时任务schedule.every().saturday.at("13:58").do(job)while True:schedule.run_pending()time.sleep(1)
bat文件
@echo off
输出当前工作目录
echo Current directory: %cd%
输出Python 解释器的路径
echo Python path: "xxxxx.exe"
输出py脚本的路径
echo Script path: "xxxxx.py"
执行指定的 py脚本
"xxxxx.exe" "xxxxx.py"
pause
vbs
在后台最小化命令提示符窗口并执行批处理文件
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "xxxxxxx.bat" & Chr(34), 7