Python pyautogui 自动控制 MDK Keil_v5 Pack Installer 的 Packs 安装过程

embedded/2024/11/15 6:04:10/

MDK Keil_v5 安装完成后,会自动进行 Pack Installer 的 Packs 安装,安装过程中首先 install 需要一行行用鼠标点,然后每一行的 Pack 都会出现同意安装或连接超时的弹窗,需要鼠标操作确认。

pyautogui 可以帮助自动控制鼠标完成确认,install 这一块是手动点完的,代码里无体现,可使用 pyautogui.locateOnScreen() 通过图标获取位置。

基本思路是,循环获取屏幕截图,通过弹窗的 pixel RGB 值实现弹窗分类,然后进行相应操作,代码使用的位置及 RGB 数据是在 1920*1080 分辨率下采集的。pyautogui.locateOnScreen() 能帮助实现特定操作,用于图像固定、位置变化的场景,如点赞按钮,可参考以下链接。

python 在屏幕上点击特定按钮或图像_python_zzfengling-华为云开发者空间
https://huaweicloud.csdn.net/63806a8ddacf622b8df87612.html

python">import time
import pyautogui
import PIL
from PIL import Image# cmd管理员方式运行def click_install():pyautogui.moveTo(721, 622, duration=1)pyautogui.click()pyautogui.moveTo(1103, 675)pyautogui.click()def click_yesno():pyautogui.moveTo(1127, 605)pyautogui.click()def check_pack():ret = 0img = pyautogui.screenshot()if (img.getpixel((1192, 511)) == (205, 205, 205))\and (img.getpixel((930, 467)) == (240, 240, 240))\and (img.getpixel((977, 639)) == (240, 240, 240))\and (img.getpixel((687, 406)) == (240, 240, 240))\and (img.getpixel((770, 395)) == (255, 255, 255))\and (img.getpixel((721, 622)) == (255, 255, 255)):ret = 1elif (img.getpixel((1189, 625)) == (240, 240, 240))\and (img.getpixel((729, 620)) == (240, 240, 240))\and (img.getpixel((912, 607)) == (240, 240, 240))\and (img.getpixel((857, 591)) == (240, 240, 240))\and (img.getpixel((1177, 564)) == (255, 255, 255))\and (img.getpixel((729, 502)) == (255, 255, 255))\and (img.getpixel((768, 575)) == (255, 255, 255))\and (img.getpixel((1142, 412)) == (255, 255, 255)):ret = 2return retwhile True:time.sleep(5)ret = check_pack()if (ret == 1):click_install()print("click_install %s\r\n" %(time.strftime("%Y-%m-%d %H:%M:%S")))elif (ret == 2):click_yesno()print("click_yesno %s\r\n" %(time.strftime("%Y-%m-%d %H:%M:%S")))

http://www.ppmy.cn/embedded/88424.html

相关文章

kubeasz 制作k8s 集群离线安装包

转载:kubeasz 制作k8s 集群离线安装包 kubeasz 制作k8s 集群离线安装包 大家好,欢迎来到运维有术 本文介绍了,利用 ezdown 制作 kubeasz 离线部署 k8s 集群所需的离线安装包。 使用 kubeasz 离线安装 k8s 集群需要下载四个部分&#xff1…

Total Eclipse 挑战赛:在以太坊首个 SVM L2 上开发应用

摘要:Eclipse 基金会宣布了其首届黑客马拉松计划,即"The Total Eclipse Challenge",作为一场独一无二的黑客松活动 ,邀请了优秀的开发者们在链上开发创新的应用。 "The Total Eclipse 挑战赛" 是一项为期两周…

ThreadLocal:线程本地变量的作用与应用

ThreadLocal:线程本地变量的作用与应用 1、简介2、作用3、应用场景4、注意事项 💖The Begin💖点点关注,收藏不迷路💖 1、简介 ThreadLocal 是Java中一个强大的工具类,用于创建线程局部变量。它为每个使用该…

嵌入式面试英文自我介绍参考(万字长文)

英文自我介绍包含组成部分 英文自我介绍需要包括下面几方面: 开场陈述: 以一个有礼貌并强有力的开场来吸引注意。Hello, my name is [Your Name], and I am a dedicated Embedded Systems Developer with over 8 years of experience designing and implementing efficient…

数据面试问题的记录——7.29

技术问题: 1、SQL中的where和having的区别 where 是取数范围 having是聚合后的结果的筛选范围 2、Python中pass、continue、break的区别 都是循环中使用 pass不起作用,可以在没有实际运行内容时占位 continue继续执行循环 break停止整个循环 逻…

ChatGPT在办公与科研中有怎样的应用?又是如何做论文撰写、数据分析、机器学习、深度学习及AI绘图

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5,将人工智能的发展推向了一个新的高度。2023年11月7日,OpenAI首届开发者大会被称为“科技界的春晚”,吸引了全球广大…

哈默纳科HarmonicDrive谐波减速机的使用寿命计算

在机械传动系统中,减速机的应用无处不在,而HarmonicDrive哈默纳科谐波减速机以其独特的优势,如轻量、小型、传动效率高、减速范围广、精度高等特点,成为了众多领域的选择。然而,任何机械设备都有其使用寿命&#xff0c…

git submodule换源

加源 git submodule add -b branch_name gitgithub.com:javasgl/xxx.git module_path git submodule update --init换源 git deinit --force contrib/xxx git rm --cached module_path # 移除相关代码 rm .git/modules/module_path参考: https://javasgl.github.i…