自制python脚本 - 定时鼠标点击脚本
遇到问题
因为最近在剪辑《幸运星》视频,所以要录点素材,但是每集视频20分钟,我不能都再看一遍啊,所以要实现一个定时录制的功能,正好再学习一下python,一举两得,岂不美哉!!
实现思路
-
坐标捕获 判断点击 延迟执行
实现源码
import sys import pyautogui import time # 2022/4/9 # create by 刘鸿涛 while True: # String坐标赋给getString变量 getString = (" " + str(pyautogui.position())) time.sleep(1) print(getString) # 先截取,再转int # 捕获x1 x1 = getString[9:13] print(x1) # 捕获y2 y1 = getString[17:21] print(y1) try: x = int(x1) except: print(x包含非数字字符....) x = x1 try: y = int(y1) except: print(y包含非数字字符....) y = y1 print(isinstance(x,int)) print(isinstance(y,int)) print(x) print(y) # 如果x,y顺利完成int转型,那么就执行以下语句 if (isinstance(x, int) & isinstance(y, int)): # 左上角 -644 1064 # 右下角 -520 1100 if (-520 > x > -644 & x < -520 & 1100> y > 1064): print("对上了!!!") time.sleep(3) pyautogui.click(x,y) print("已执行!!程序关闭!!") sys.exit() else: print("还未对上哦...")
成功执行
总结与分析
1:我们要获取鼠标光标坐标,使用pyautogui包的position方法,我们循环此方法,返回一个getString类型的String变量
2:我们需要给String截取并转型为int,这样我们才可以进行动态数字化判断
3:如果x和y在转型后都为int,那么我们就执行坐标判断,是否对上我们的目标焦点,如果对上,就print、sleep,并执行pyautogui.click(x,y),否则,打印未对上
难点:
判断是否符合转型条件
使用try except语句
如果我截取的此String包含非法字符,那么我本次转型必定会报异常,导致程序退出,所以我们使用try包裹
如果try未报异常,我们就直接转型,如果异常,证明有非法字符,所以我们在except中进行赋值,保证下面的判断语句可以正常执行