程序聚合 软件案例 Windows系统应用UI自动化-UI自动化工具

Windows系统应用UI自动化-UI自动化工具

2026-04-15 21:10:16
行业:企业内部管理、零售/新消费
载体:Windows应用
技术:Python

业务和功能介绍

核心功能
- 任务管理 :通过配置文件定义任务组和任务参数,支持多任务并行执行
- 任务调度 :智能调度任务执行,监控任务状态,处理超时任务
- 自动化UI操作 :通过图像识别技术实现Windows应用程序的自动化操作
- 进程管理 :自动启动和终止应用程序进程
- 配置管理 :通过JSON配置文件管理任务参数和系统设置
整体架构
配置层
- 负责加载和管理配置文件
- 提供配置验证和访问接口
- 支持打包和未打包状态的配置文件加载
任务管理层
- 任务初始化和管理
- 任务调度和监控
- 异常任务修复
控制层
- 控制任务执行流程
- 协调各页面操作
- 处理异常情况
页面操作层
- 封装各页面的 UI 操作
- 提供页面元素定位和操作方法
- 通过图的数据结构及最短路径算法,实现页面间的导航
工具层 :
- 系统操作工具
- 文件操作工具
- Windows 操作工具
- 公共方法

项目实现

## 核心模块
### 任务管理模块
- TaskManager :任务管理器,负责初始化任务处理器、添加任务、等待任务完成等。
- TaskPool :任务池,采用观察者模式,管理任务的添加、获取和通知。
- TaskHandler :任务处理器,作为观察者,负责执行具体的任务。
- TaskExec :任务执行抽象接口,定义了任务执行的基本方法。
- TaskExecutor :任务执行器,实现了具体的任务执行逻辑。
### 页面操作模块(PO设计模式)
- BasePage :页面基类,定义了页面的基本属性和方法。
- **Page :封装了各页的各种操作。
### 工具模块
- WinAction :窗口操作工具,提供了元素查找、鼠标点击等功能。
- PubMethod :公共方法,提供了页面加载检查等功能。
- SysUtil :系统工具,提供了进程管理等功能。
## 核心流程
### 项目启动流程
- 从 main.py 开始,初始化日志配置。
- 调用 PubMethod.init_direct_graph() 初始化有向图。
- 创建 TaskManager 实例并调用 task_exec() 方法。
### 任务管理流程
- TaskManager.task_exec() 方法首先杀掉旧进程。
- 初始化任务处理器,根据配置创建指定数量的 TaskHandler 实例。
- 添加任务到任务池。
- 等待所有任务执行完成。
### 任务执行流程
- TaskPool.add_task() 方法将任务添加到任务池并通知所有观察者。
- TaskHandler.update() 方法接收到任务后,启动线程执行任务。
- TaskHandler._execute_task() 方法根据配置的执行时间循环执行任务。
- TaskExecutor.exec_control() 方法执行具体的任务逻辑,包括启动程序、执行操作、关闭程序等。
### 页面操作流程
- TaskExecutor.start_program() 方法启动程序并执行一系列页面操作。
- 通过页面类的方法操作页面元素。
- 使用 WinAction 工具类查找元素并执行鼠标点击等操作。
- 使用 PubMethod 工具类检查页面加载是否成功。
## 设计模式
项目中使用了多种设计模式,包括:
- 观察者模式
- 单例模式
- 抽象工厂模式
# 数据结构算法
-‘图’数据结构来表达页面之间的关系
- 图的最短路径算法实现页面跳转

项目地址:https://gitee.com/robotzheng/w-tools-standard.git

示例图片视频


砖匠
15天前活跃
方向: 人工智能-AI应用开发、后端-Node.js、
交付率:100.00%
相似推荐
RAG Agent
一、立项背景与目标 1. 立项背景 在传统的知识库问答系统中,普遍存在以下痛点: - 流程混乱:通用ReAct Agent在处理复杂业务时,容易发生步骤跳跃或逻辑错乱,导致回答质量不稳定。 - 上下文断裂:多轮对话中,用户常使用代词(如“它多少钱?”),传统向量检索缺乏指代消解能力,导致检索失败。 - 意图混杂:闲聊式提问(如“你好”)与知识检索式提问(如“XX产品参数是多少”)被统一处理,浪费算力且影响用户体验。 - 状态丢失:用户刷新页面或稍后再访问时,对话历史无法延续,每次都是“新会话”。 2. 项目目标 - 构建一个流程可控、意图可分流、上下文可理解、状态可持久的智能知识助手。 - 实现复杂业务逻辑的结构化解耦,提升系统的可维护性与稳定性。 - 显著提升多轮对话场景下的检索命中率与回答准确率。 二、软件功能与核心模块 1.整体功能概述 本系统是一个基于LLM的智能对话式知识库问答助手,支持用户通过自然语言提问,从向量知识库中精准检索并生成回答。系统特别强化了多轮对话中的指代消解能力与流程可控性。 2.核心功能模块介绍 模块名称 功能说明 Planner(规划器) 基于LLM + 专用Prompt,硬编码业务流程。负责解析用户请求,按固定流程调度执行,防止逻辑跳跃。 语义路由器 基于LLM的分类工具,动态识别用户意图为“chat”(闲聊)或“retrieval”(知识检索),实现分支分流。 历史加载与写入模块 与Redis集成,自动追加对话历史,确保跨会话的上下文连续性。 查询重写模块 结合历史对话,将存在指代或省略的用户问题(如“它多少钱?”)改写为语义完整的独立问句。 混合检索引擎 同时执行向量语义检索与关键词检索,通过RRF算法融合排序,提升召回效果。 Executor(执行器) 根据Planner的指令,调用重写、检索、生成等环节,最终输出回答。 系统流程严格遵循:语义路由 → 历史加载 → (分支判断) → 查询改写/直接回答 → 知识库检索 → 最终生成 三、业务流程与功能路径 以下为用户与系统交互的完整功能路径描述: 场景一:用户进行知识检索(多轮对话) 场景二:用户发起闲聊 场景三:用户首次访问 / 会话恢复
端到端自动驾驶轻量化模型设计
本项目主要面向无人驾驶仿真研究、智能车辆轨迹跟踪与轻量化控制算法验证场景,围绕端到端自动驾驶技术开展系统设计与实验开发。项目基于 CARLA 仿真平台构建虚拟驾驶环境,通过采集车辆前视图像、行驶状态和控制指令等数据,训练轻量化神经网络模型,实现从环境感知输入到车辆控制输出的端到端映射。项目可用于自动驾驶算法教学、科研训练、数据采集、模型训练、仿真测试和轨迹跟踪效果评估,为低成本、高效率的自动驾驶算法验证提供支持。 本项目主要功能包括仿真环境搭建、自动驾驶数据采集、数据预处理、模型训练、模型推理和效果评估等模块。系统可在 CARLA 仿真环境中生成车辆行驶场景,自动采集车辆前方图像、方向盘转角、油门、刹车等控制数据,并生成对应的数据标签文件;同时支持对采集数据进行划分和预处理,形成训练集、验证集和测试集。模型部分采用轻量化端到端神经网络结构,通过输入车辆前视图像,直接预测车辆控制指令或轨迹跟踪相关参数,从而实现车辆在仿真道路中的自主行驶与轨迹跟踪。项目还支持训练过程记录、模型保存、测试推理和结果可视化,便于对算法性能进行分析和改进。
k8s加ray集群部署
基于 Kubernetes 和 Ray 构建大规模分布式训练系统,常常会面对一个典型需求:训练任务需要调用独立的仿真环境(如游戏引擎、机器人模拟器、工业仿真软件等),而这些仿真环境本身已打包为 Docker 镜像,必须在一个隔离的容器内运行。此时,将容器化的仿真环境与 Ray 的工作节点相结合,并在 Kubernetes Pod 内安全、高效地运行仿真容器,就成了架构的关键。Docker‑in‑Docker(DinD)便是解决此类场景的重要技术之一。
AI学生手册问答助手-学生手册助手
本项目是一个面向学生事务资料查询场景的 AI 问答工具,主要解决学生在阅读学生手册、校规文件和办事流程时查找困难、理解成本高、重复咨询多的问题。 系统支持基于已整理资料进行智能问答,用户可以咨询学籍管理、考试安排、奖学金、请假、处分、实践学分等规则类问题。项目提供普通回答和专业回答两种模式:普通回答适合快速查询,专业回答会补充依据、办理流程、可信度提示和必要的流程图说明。 系统还支持资料上传学习功能,可将 Markdown 或文本格式的规章文件加入知识库,使问答范围不局限于默认资料。整体目标是把分散、较长、阅读门槛较高的制度文件,转化为更容易理解和检索的交互式问答体验。
AI英语学习平台-VerbaPath
SmartLearn Pro 是一个面向英语学习场景的 AI 学习平台,核心目标是把文章、单词、听说读写训练和复习计划整合到一个学习闭环中。系统支持文本/PDF 导入、AI 阅读分析、生词提取、闪卡复习、记忆曲线复习、阅读考试训练、翻译挑战、AI 写作批改、口语教练、学习笔记、知识图谱和学习流画布等功能。 用户可以导入学习资料,系统自动生成词汇、语法结构、阅读理解题和复习内容;在学习过程中可以将生词、难句、错题和写作素材沉淀为笔记,并通过 FSRS 记忆算法安排后续复习。项目还集成了语音识别、AI 对话和 TTS 语音合成能力,用于模拟 IELTS、商务英语、日常聊天等口语训练场景,帮助用户完成从输入、练习、反馈到复习的完整学习流程。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服