# nc_autoinput **Repository Path**: dogisgod/nc_autoinput ## Basic Information - **Project Name**: nc_autoinput - **Description**: nc_autoinput:一个专注于自动输入功能的开源项目,适用于多种应用场景,如自动化测试、脚本开发等,旨在提高开发效率和自动化水平。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://llmy.homes - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-02-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nc_autoinput ## 项目概述 nc_autoinput 是一个功能强大的自动化输入工具,专注于提供高效、可靠的自动化操作解决方案。适用于多种应用场景,如自动化测试、批量数据录入、脚本开发等,旨在提高开发效率和自动化水平。 ### 核心价值 - **简化重复操作**:通过录制和回放功能,自动执行重复性任务 - **提高工作效率**:批量处理数据,减少人工操作时间 - **精准操作**:精确的坐标拾取和事件录制,确保操作准确性 - **灵活配置**:支持自定义流程编排和模板管理,适应不同场景需求 - **实时反馈**:直观的状态指示和日志显示,提供清晰的操作反馈 ## 核心功能 ### 1. 操作录制与回放 - **操作录制**:记录鼠标点击、双击、键盘输入、滚动操作等用户行为 - **实时回放**:支持录制内容的实时回放,可暂停、继续和停止 - **循环播放**:支持循环播放录制文件,提高批量处理效率 - **悬浮窗控制**:回放时显示可拖动的悬浮窗,提供更好的视觉反馈 ### 2. 流程编排 - **可视化编排**:直观的流程步骤编辑界面 - **步骤管理**:添加、删除、调整步骤顺序 - **步骤类型**:支持点击、双击、输入、滚动等多种操作类型 - **执行序号调整**:直接修改执行序号,自动调整步骤位置 ### 3. 预配置事件 - **事件管理**:自定义鼠标点击、双击、输入框填充的坐标和参数 - **批量编辑**:支持批量修改事件坐标 - **快速拾取**:一键拾取目标控件坐标,提高配置效率 - **滚动操作配置**:支持上下左右四个方向的滚动操作 ### 4. Excel数据驱动 - **数据读取**:从Excel文件读取数据,按先行后列顺序生成输入事件 - **数据缓存**:实现行级缓存,提高Excel数据读取性能 - **数据验证**:自动检测空值,确保数据完整性 - **批量操作**:利用Excel数据进行批量操作,提高工作效率 ### 5. 模板管理 - **多模板支持**:支持创建、保存、切换多个模板 - **模板导入导出**:方便模板共享和备份 - **批量删除**:支持同时删除多个模板 - **模板验证**:自动检测和修复模板配置错误 ### 6. 界面与用户体验 - **增强型坐标拾取器**:十字光标、实时坐标显示,精确拾取坐标 - **统一主题样式**:应用一致的界面主题,提升视觉体验 - **自适应对话框**:对话框自动适应内容大小,避免内容截断 - **实时状态指示**:通过颜色和闪烁效果直观显示操作状态 - **日志面板**:独立置顶的日志面板,实时显示执行过程 ### 7. 高级功能 - **执行控制**:支持暂停/继续执行,应对突发情况 - **紧急停止**:鼠标快速移动到屏幕左上角,可强制终止所有操作 - **界面锁定**:录制或回放进行中时不允许关闭面板 - **配置验证**:自动检测和修复配置文件错误 - **状态栏显示**:详细的执行状态显示,包括轮次、Excel行数、运行时长等 ## 软件架构 ### 核心模块 1. **配置管理**:处理模板配置的保存、加载和验证 2. **事件管理**:管理预配置事件和录制事件 3. **流程执行**:按步骤顺序执行流程,支持Excel数据驱动 4. **UI管理**:处理界面显示和用户交互 5. **录制回放**:处理操作的录制和回放 6. **Excel处理**:读取和处理Excel数据 7. **消息管理**:统一管理系统消息和提示 ### 技术实现 - **开发语言**:Python - **GUI框架**:Tkinter - **自动化库**:PyAutoGUI - **Excel处理**:openpyxl - **数据持久化**:JSON - **多线程**:支持后台执行,不阻塞GUI ## 安装指南 ### 1. 环境要求 - Python 3.8+ - Windows/Linux/MacOS ### 2. 安装步骤 #### 方法一:直接安装依赖 ```bash pip install pyautogui openpyxl pyperclip pynput ``` #### 方法二:使用requirements.txt(推荐) ```bash # 克隆或下载项目到本地 cd nc_autoinput pip install -r requirements.txt ``` #### 注意事项 - **Linux系统**:可能需要额外安装Tkinter ```bash # Ubuntu/Debian sudo apt-get install python3-tk # CentOS/RHEL sudo yum install python3-tkinter ``` - **权限设置**:某些系统可能需要管理员/root权限来运行自动化操作 ### 3. 运行程序 ```bash python main.py ``` ## 快速开始 ### 基本流程 1. **启动程序**:运行 `python main.py` 启动应用 2. **配置预定义事件**: - 点击"自动拾取坐标",3秒内点击目标控件 - 或手动编辑事件坐标和参数 3. **编排流程**: - 添加步骤,选择操作类型和目标事件 - 调整步骤顺序和执行等待时间 4. **执行流程**: - 点击"开始执行",程序开始按流程执行 - 执行状态实时显示在状态栏和日志面板 - 点击"停止执行"可终止执行 ### 录制功能使用 1. **打开录制面板**:点击"录制操作"按钮 2. **开始录制**:点击"开始录制",红点闪烁表示正在录制 3. **执行操作**:在目标应用中执行需要录制的操作 4. **停止录制**:点击"停止"按钮结束录制 5. **保存录制**:点击"保存录制",输入模板名称保存 6. **回放录制**:在录制面板中选择保存的录制文件,点击"回放"按钮 ### Excel数据驱动使用 1. **启用Excel数据**:在系统配置中勾选"使用Excel数据" 2. **选择文件**:点击"浏览"选择Excel文件和工作表 3. **配置范围**:设置数据开始行、结束行、开始列、结束列 4. **生成事件**:点击"按Excel顺序生成输入事件" 5. **执行流程**:点击"开始执行",程序会按Excel数据循环执行 ## 架构说明 ### 核心模块关系 - **main.py**:应用入口,管理主窗口和菜单 - **record_module.py**:录制模块,处理操作录制和倒计时 - **playback_module.py**:回放模块,处理录制内容的回放 - **edit_panel.py**:编辑面板,处理流程编排和事件配置 - **excel_handler.py**:Excel处理模块,读取和处理Excel数据 - **template_manager.py**:模板管理模块,处理模板的保存、加载和验证 - **message_manager.py**:消息管理模块,统一管理系统消息和提示 - **floating_playback_window.py**:悬浮窗模块,显示回放状态 ### 数据流 1. **录制流程**:用户操作 → 事件捕获 → 数据存储 → 模板保存 2. **回放流程**:模板加载 → 事件解析 → 操作执行 → 状态反馈 3. **Excel驱动流程**:Excel数据读取 → 数据缓存 → 事件生成 → 批量执行 ## 配置说明 ### 配置文件 - **config.json**:存储系统配置和模板信息 - **recordings/**:存储录制的操作文件 - **data/**:存储模板和配置文件 ### 主要配置项 - **loop_wait_time**:循环执行等待时间(秒) - **use_excel_data**:是否使用Excel数据 - **excel_file**:Excel文件路径 - **excel_sheet**:Excel工作表名称 - **start_row/end_row/start_col/end_col**:Excel数据范围 - **use_floating_playback_window**:是否使用回放悬浮窗 ## 常见问题与解决方案 ### 1. 权限问题 - **问题**:无法执行鼠标点击或键盘输入 - **解决方案**:以管理员权限运行程序,或在系统设置中允许程序的自动化操作权限 ### 2. 坐标问题 - **问题**:录制的操作在回放时位置不准确 - **解决方案**:确保回放时目标应用窗口大小和位置与录制时一致,或使用坐标拾取器重新获取坐标 ### 3. Excel数据问题 - **问题**:无法读取Excel数据 - **解决方案**:确保Excel文件格式正确,工作表名称正确,并且数据范围设置合理 ### 4. 性能问题 - **问题**:执行速度慢或卡顿 - **解决方案**:减少步骤数量,优化等待时间,或使用Excel数据缓存功能 ### 5. 兼容性问题 - **问题**:在某些系统上无法运行 - **解决方案**:确保Python版本≥3.8,安装所有必要的依赖包,或尝试在不同系统上运行 ## 更新日志 ### v1.8.70 (2026-02-02) - **回放完成状态优化**:实现了回放完成后10秒自动切换到就绪状态的功能 - **界面恢复优化**:回放完成时立即恢复面板显示,而不是等到10秒后才恢复 - **状态指示器修复**:确保回放完成时显示蓝色图标,返回就绪状态时显示绿色图标 ### v1.8.69 (2026-02-02) - **回放面板图标优化**:修改了RecordStatusIndicator类,让回放面板使用与悬浮窗相同的图标 - **悬浮窗进度条颜色优化**:修改了FloatingPlaybackWindow类,让进度条的颜色跟着状态变化 ### v1.8.68 (2026-02-02) - **状态圆点背景色优化**:优化了状态圆点的背景色设置,确保在不同状态下与面板背景色完全融合 - **录制面板和悬浮窗闪烁同步**:实现了统一的闪烁控制机制,使用单一定时器控制两个状态指示器的闪烁 ### v1.8.67 (2026-02-02) - **回放模块作用域错误修复**:修复了playback_module.py中的UnboundLocalError问题 - **回放悬浮窗功能启用**:启用了回放悬浮窗功能,将配置文件中的use_floating_playback_window设置为true ### v1.8.66 (2026-02-01) - **悬浮窗进度渲染优化**:实现了按等待时间计算进度的机制,每100ms更新一次,动画效果更加平滑 - **闪烁效果增强**:优化了完成时的闪烁效果,在进度达到100%时触发,3次闪烁,总时间900ms ### v1.8.64 (2026-01-29) - **状态栏显示优化**:实现了详细的执行状态显示,包括轮次、Excel行数、物料编码和运行时长 - **配置流程界面位置记忆**:实现了配置窗口记住上次打开位置的功能 - **Excel数据处理优化**:实现了一次性缓存10行数据的预读取机制,提高执行可靠性 ### v1.8.63 (2026-01-26) - **滚动操作配置**:在流程编排中添加了对scroll操作类型的完整支持 - **界面优化**:在选择scroll操作类型时,自动显示滚动方向的下拉选择框 ### v1.8.62 (2026-01-25) - **编辑器进程管理**:实现了主程序关闭时自动关闭独立编辑器的功能 - **快捷键支持**:为文件菜单下的退出按钮添加了Ctrl+Q快捷键支持 ### v1.8.61 (2026-01-25) - **修复编辑按钮功能**:解决了预配置事件中"编辑"和"批量编辑坐标"按钮灰色不可用的问题 - **快速拾取功能兼容性**:优化了快速拾取坐标功能与编辑按钮的兼容性 ### v1.8.60 (2026-01-25) - **流程编辑器防多开机制**:确保不会同时打开多个流程编辑器实例 - **提示文字优化**:调整提示文字位置到底部中央,统一提示文字样式 - **功能聚焦**:禁用流程编辑器的"添加步骤"按钮,使独立流程编辑器专注于拖拽排序功能 ### v1.8.59 (2026-01-24) - **快速更新坐标功能**:为预配置事件添加了快速更新坐标功能 - **界面优化**:确保在添加操作列时不会丢失之前的列标题 ### v1.8.58 (2026-01-24) - **Excel缓存机制**:实现了行级缓存,显著提高Excel数据读取性能 - **缓存配置**:默认最大缓存行数为1000行,支持通过cache_enabled标志启用或禁用缓存 ### v1.8.57 (2026-01-24) - **执行序号调整功能**:在步骤编辑对话框中添加了"执行序号"输入框,允许用户直接输入想要的执行序号 - **步骤编辑优化**:保持了原有的界面风格,合理调整了对话框布局 ### v1.8.56 (2026-01-24) - **输入验证颜色区分显示**:在悬浮窗日志中,成功的验证结果以绿色显示,失败的验证结果以橙色显示,错误消息以红色显示 - **暂停/继续功能**:添加了"继续执行"按钮,当输入验证失败时,程序会自动暂停执行,等待用户操作 ### v1.8.55 (2026-01-23) - **坐标微调功能优化**:修复增强型坐标拾取器无法响应点击和键盘事件的问题 - **全局事件捕获**:添加全局事件捕获机制,确保全屏透明窗口能够捕获所有鼠标和键盘事件 ### v1.8.54 (2026-01-23) - **日志面板优化**:实现日志面板独立置顶功能,不受主界面置顶状态影响 - **实时日志显示**:修复日志面板不显示实时日志信息的问题 ### v1.8.51 (2026-01-22) - **面板关闭限制功能实现**:实现了在录制或回放进行中时不允许关闭面板的功能 - **控件销毁错误修复**:修复了在面板关闭后尝试访问已销毁控件的错误 - **录制倒计时显示问题修复**:修复了倒计时文字不完整显示的问题 ### v1.8.50 (2026-01-22) - **回放悬浮窗异常修复**:修复了回放悬浮窗的AttributeError异常 - **悬浮窗功能恢复**:恢复了录制和回放悬浮窗的原始功能 ### v1.8.49 (2026-01-22) - **回放卡死问题修复**:修复了回放操作时程序卡死的问题,将悬浮窗创建操作移到主线程事件循环中执行 - **悬浮窗同步与控制优化**:实现了录制和回放悬浮窗随对应面板关闭而关闭的功能 ### v1.8.41 (2026-01-21) - **流程编排界面优化**:修复了流程编排页面底部按钮的间距问题,确保按钮间距统一美观 ### v1.8.40 (2026-01-21) - **模板批量删除功能修复**:修复了模板批量删除功能的缩进错误,确保for循环正确执行 ### v1.8.39 (2026-01-21) - **录制悬浮窗功能实现**:实现了独立的录制悬浮窗,与回放悬浮窗类似,支持拖动和状态显示 - **录制状态同步修复**:修复了暂停后继续录制时主面板和悬浮窗状态不同步的问题 ### v1.8.0 (2026-01-20) - **修复录制和回放互斥问题**:扩展回放状态检查条件,确保录制和回放操作完全互斥 - **修复回放状态信息显示问题**:使用after方法确保在主线程中更新状态,解决线程安全问题 ### v1.7.0 (2026-01-17) - **新增录制回放功能**:在RecordPanel中添加了回放按钮,支持回放录制的操作 - **优化编辑菜单**:完善编辑菜单功能,提高用户体验 ## 贡献指南 ### 如何贡献 1. **Fork 仓库**:在GitHub上Fork项目仓库 2. **克隆仓库**:将Fork的仓库克隆到本地 ```bash git clone https://github.com/yourusername/nc_autoinput.git ``` 3. **创建分支**:创建新的分支进行开发 ```bash git checkout -b feature/your-feature ``` 4. **开发功能**:实现新功能或修复bug 5. **提交代码**:提交代码并添加清晰的 commit 信息 ```bash git commit -m "Feature: 添加新功能描述" ``` 6. **推送代码**:将代码推送到GitHub ```bash git push origin feature/your-feature ``` 7. **创建Pull Request**:在GitHub上创建Pull Request,描述功能或修复内容 ### 代码规范 - **命名规范**:使用清晰、有意义的变量和函数名 - **代码风格**:遵循PEP 8代码风格指南 - **注释规范**:添加必要的注释,解释代码逻辑 - **测试要求**:确保新功能有适当的测试 ### 提交规范 - **Commit 信息格式**: ``` <类型>: <描述> <详细说明> ``` - **类型**:Feature(新功能)、Fix(修复)、Docs(文档)、Style(风格)、Refactor(重构)、Test(测试)、Chore(构建/依赖) - **描述**:简短描述提交内容,不超过50个字符 - **详细说明**:详细描述提交内容,可多行 ## 许可证 本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件 ## 联系方式 - **项目地址**:https://github.com/username/nc_autoinput - **问题反馈**:https://github.com/username/nc_autoinput/issues - **贡献者**:欢迎所有形式的贡献和反馈 ## 致谢 感谢所有为项目做出贡献的开发者和用户,你们的支持是项目不断进步的动力! --- **nc_autoinput** - 让自动化操作更简单、更高效! #### 更新日志 ##### v1.6.12 (2026-01-17) - **修复模板列表同步问题**: - 解决模板管理中删除模板后,编辑录制内容界面的模板列表不实时更新的问题 - 在删除模板时通知EditPanel更新模板列表 - 利用EditPanel的单例特性,直接访问实例并调用update_template_list方法 - 确保配置数据实时同步,提高用户体验的一致性 ##### v1.6.11 (2026-01-17) - **修复模板实时显示问题**: - 解决新保存的模板在点击"刷新模板"后不立即显示的问题 - 确保RecordPanel和EditPanel使用全局CONFIG_DATA,实现模板实时更新 - 新保存的模板能在点击"刷新模板"后立即显示在模板列表中 - **完善录制模板数据结构**: - 修复录制保存的模板缺少必要字段导致配置流程报错的问题 - 在EventConverter中添加loop_wait_time和excel_config字段 - 确保录制生成的模板结构与默认模板保持一致 - 避免点击配置流程按钮时出现"配置文件损坏"错误 - **实现模板批量删除功能**: - 为模板列表添加多选支持(selectmode="extended") - 重写delete_template函数,支持批量删除多个模板 - 实现批量验证、确认和删除逻辑 - 处理默认模板和当前使用模板的保护逻辑 - 优化批量删除的用户体验,包括批量确认对话框和结果提示 - **修复程序运行错误**: - 修复程序中不存在的方法调用,确保程序能正常运行 - 完善错误处理和用户提示 ##### v1.6.10 (2026-01-16) - **优化保存录制功能**: - 将"保存录制"按钮文本修改为"保存原始录制数据",提高功能清晰度 - 重构保存对话框,实现自适应窗口大小和统一主题样式 - 简化保存逻辑,支持单名称输入和自动生成模板文件 - 确保保存时同时生成模板文件和原始数据文件 - 修复模板删除逻辑,确保删除模板时同时删除关联的原始数据文件 - **统一提示窗口样式**: - 创建dialogs.py文件,统一管理所有提示窗口 - 实现不同类型对话框的主题颜色(信息-蓝色、警告-橙色、错误-红色、确认-浅蓝色) - 优化提示信息文本,减少冗余内容 - **改进使用说明窗口**: - 将UsageDialog类改造为继承自ResponsiveDialog,实现自适应布局 - 优化窗口大小和可调整性,确保内容完整显示 - **其他界面优化**: - 简化关闭工具和配置窗口的提示信息 - 统一所有对话框的样式和交互体验 - 提高界面的一致性和用户体验 ##### v1.6.9 (2026-01-16) - **实现操作录制功能**: - 新增录制控制面板,支持开始、暂停、停止和保存录制 - 实现录制状态指示,通过颜色和闪烁效果直观显示录制状态(就绪/录制中/暂停/停止) - 优化录制窗口布局,简化录制时长显示,调整状态文本和布局 - **录制时长同步**: - 录制时长实时显示在主界面状态栏,方便查看 - 确保录制、暂停、停止状态下时长显示准确同步 - **菜单优化**: - 禁用未实现的菜单项,提高界面可用性 - 优化菜单结构和交互逻辑 - **更新使用说明**: - 添加操作录制功能的详细使用说明 - 完善注意事项,提醒用户正确使用录制功能 - **更新README.md文档**: - 新增操作录制功能的详细说明 - 完善核心功能列表 - 保持文档与代码功能的一致性 ##### v1.4.6 (2026-01-13) - **修复日志面板自动隐藏问题**: - 实现Windows API级修复,将日志面板从工具窗口转换为应用窗口 - 强制日志面板置顶显示,防止被其他窗口遮挡 - 添加强制窗口显示机制,确保在执行过程中始终可见 - 优化日志更新逻辑,确保实时显示执行过程 - 解决线程安全问题,确保在多线程环境下稳定运行 - 适配Win11+Python3.13.9环境,提升兼容性 ##### v1.4.5 (2026-01-12) - **新增配置文件校验功能**: - 实现完整的配置验证系统,确保配置文件完整性和有效性 - 自动检测并修复配置中的错误,如类型错误、缺失字段、无效值等 - 提供详细的错误提示,告知用户配置问题及修复情况 - 支持验证模板结构、事件配置、Excel设置等所有配置项 - 确保程序在配置文件损坏或手动修改后仍能稳定运行 - **改进模板管理功能**: - 导出模板时允许自定义模板名称 - 导入模板时显示文件名和文件内部模板名称,避免混淆 - 提供智能重命名建议,基于文件名自动生成模板名称 - 当模板名称冲突时,提供覆盖或重命名选项 - 对导入的模板配置进行自动验证和修复 - 支持导入完整配置文件,自动验证并修复所有配置 - **优化界面与吸管取色功能**: - 删除了界面上的颜色单选框,使界面更加简洁 - 改进了吸管取色功能,实现当前激活颜色输入框的智能识别 - 吸管取色时自动将颜色应用到最后点击的颜色输入框 - 增强了用户体验,无需再手动选择颜色目标 ##### v1.8.3 (2026-01-20) - **录制功能优化与修复**: - 修复录制状态指示器的显示问题,就绪和录制中使用小圆点,暂停和停止使用图标 - 修复暂停后无法继续录制的问题,确保状态文本一致 - 修复录制停止后无法再次开始录制的问题 - 实现录制停止后10秒自动切换到就绪状态 - 让时间标签颜色跟随录制状态变化(录制中红色,就绪绿色,暂停橙色,停止蓝色) - 禁用并隐藏录制进度条,简化界面 - **录制面板UI优化**: - 调整窗口高度从380px增加到450px,提供更多垂直空间 - 增加各UI元素之间的垂直间距,使界面更加舒适 - 合理利用空白空间,避免控件过于拥挤 ##### v1.8.15 (2026-01-20) - **回放计时和悬浮窗对齐问题修复**: - 修复暂停时计时继续的问题,添加暂停时间计算逻辑 - 修复回放超过录制时间的问题 - 优化悬浮窗元素对齐,使图标、文字和进度条更加协调美观 ##### v1.8.14 (2026-01-20) - **悬浮窗ttk.Button height选项错误修复**: - 修复悬浮窗加载失败问题,移除ttk.Button不支持的height参数 - 解决"unknown option '-height'"错误 - 确保悬浮窗能够正常显示和工作 ##### v1.8.13 (2026-01-20) - **悬浮窗main_frame未定义错误修复**: - 修复悬浮窗加载失败问题,将所有main_frame引用更新为self.main_frame - 解决"name 'main_frame' is not defined"错误 - 确保悬浮窗能够正常显示和工作 ##### v1.8.12 (2026-01-20) - **悬浮窗功能修复**: - 修复悬浮窗无法拖动的问题,将拖动事件绑定到所有可见元素 - 移除透明背景设置,避免拖动时的视觉问题 - 添加主题色恢复功能,确保回放结束后恢复原始主题 - 优化元素对齐,提升界面整体美观度 ##### v1.8.11 (2026-01-20) - **悬浮窗布局对齐优化**: - 修复悬浮窗元素对齐问题,使布局更加协调美观 - 优化元素间距和尺寸设置,统一对齐方式 - 调整图标大小和位置,提升视觉平衡感 - 改进进度条和进度文本的排列关系 - 增强整体界面的视觉一致性 ##### v1.8.10 (2026-01-20) - **悬浮窗进度条布局修复**: - 修复进度条布局错误,解决"Layout Horizontal.Floating.Progressbar not found"错误 - 添加默认水平进度条布局配置,确保自定义进度条样式正常工作 - 确保程序能够正确加载录制文件 ##### v1.8.9 (2026-01-20) - **悬浮窗设计改进**: - 参考百度网盘和迅雷下载悬浮窗风格,采用现代化设计 - 添加进度条显示回放进度,支持动画效果 - 改进UI布局,使用更清晰的层次结构 - 优化颜色搭配,使用蓝色主色调,更符合现代设计美学 - 添加平滑的进度条动画效果,提升用户体验 - 增强交互体验,按钮和控件更加美观易用 - 改进窗口样式,使用白色背景和半透明效果 ##### v1.8.8 (2026-01-20) - **回放暂停功能完善**: - 修复回放暂停时直接结束的问题 - 添加_playback_paused标志位,确保暂停时不会执行回放结束逻辑 - 完善try-finally块中的条件判断,避免暂停状态下重置按钮和状态 - 确保暂停时保持正确的UI状态和按钮可用性 - 优化回放线程与GUI线程之间的交互逻辑 ##### v1.8.7 (2026-01-20) - **回放暂停功能修复**: - 修复暂停回放时回放停止并提示失败的问题 - 移除可能导致GUI异常的window.update()调用 - 添加时长计时器的暂停/恢复功能,确保暂停时时间不继续流逝 - 优化状态回调机制,避免暂停时频繁调用status_callback导致异常 - 确保暂停状态下的正确处理逻辑,防止误触发停止流程 - 修复所有相关的暂停逻辑,包括事件间延迟和等待时间的暂停处理 ##### v1.8.6 (2026-01-20) - **回放功能文件查找优化**: - 修复回放功能只能查找recordings文件夹的问题,现在同时支持data和recordings文件夹 - 回放列表能显示data文件夹中所有的录制文件(除了模板文件) - 使用"data/"前缀区分不同文件夹中的同名文件 - 优化文件加载逻辑,确保能正确找到录制文件的实际路径 - 增加错误处理,当文件找不到时显示友好的错误信息 - 与原有录制功能兼容,不影响现有使用习惯 ##### v1.8.5 (2026-01-20) - **录制文件路径修复**: - 修复录制文件保存位置问题,确保录制文件默认保存到与回放功能一致的recordings文件夹 - 回放功能现在能自动找到录制的文件,不再显示空列表 - 优化录制文件保存对话框,默认打开recordings文件夹 - 确保录制和回放功能使用统一的文件存储位置 ##### v1.8.4 (2026-01-20) - **回放功能完整实现**: - 实现完整的回放控制面板,支持开始、暂停、继续和停止回放 - 支持加载录制的JSON文件,回放鼠标点击、双击、按键和输入操作 - 实现回放进度显示和时长统计 - 支持回放悬浮窗显示,可拖动和半透明效果 - 与主界面状态栏实时同步回放状态 - 实现播放/暂停状态切换和停止功能 - 支持自动加载和解析录制的事件数据 - 提供友好的错误处理和状态提示 ##### v1.8.2 (2026-01-19) - **创建独立的消息管理模块**: - 创建message_manager.py文件,实现集中式的临时消息管理功能 - 支持多种消息类型:成功、错误、警告、信息等 - 消息自动消失,无需用户额外点击确认 - 支持自定义消息显示时长、位置和样式 - 使用单例模式确保消息窗口的正确管理 - **更新坐标拾取器的临时消息机制**: - 将坐标拾取器内部的临时消息方法替换为MessageManager类的方法 - 坐标拾取成功消息使用成功样式显示 - 进入/取消拾取模式消息使用信息样式显示 - 删除了不再需要的内部消息方法 ##### v1.8.1 (2026-01-19) - **修复模板管理相关问题**: - 修复新建模板的输入验证逻辑 - 解决导出模板对话框取消按钮导致窗口最小化的问题 - 更新ResponsiveDialog/StringInputDialog类,统一处理空输入和取消按钮行为 - 恢复主窗口尺寸为800x300,并添加注释保持不变 - **版本更新与文档维护**: - 更新版本号为v1.8.1 - 完善相关文档说明 ##### v1.8.0 (2026-01-19) - **优化坐标拾取器的用户体验**: - 将坐标拾取成功后的模态对话框改为临时自动消失的提示消息 - 提升用户操作流畅性,减少不必要的点击 ##### v1.7.9 (2026-01-19) - **修复系统配置选项卡布局混乱问题**: - 解决了添加"启用增强坐标拾取器"选项后导致的布局重叠问题 - 调整了系统配置选项卡中各控件的行号,确保控件不重叠且显示完整 - 移动了字体选择、字体大小、透明度设置等控件的位置 - 调整了自定义颜色配置相关控件的行号,解决布局冲突 ##### v1.7.8 (2026-01-19) - **回滚版本**: - 修复过程中出现布局问题,回滚到稳定版本 ##### v1.7.7 (2026-01-19) - **修复回放时窗口关闭导致的错误**: - 在回放线程中添加了窗口和UI元素的存在性检查 - 解决了窗口关闭后仍尝试更新UI元素导致的TclError错误 - 确保在UI元素不存在时不会尝试访问它们 - **新增增强型坐标拾取功能**: - 实现十字光标带红色圆心的精确坐标定位 - 实时显示当前鼠标的X和Y轴坐标 - 支持自定义快捷键触发保存坐标 - 在系统配置中可开启/关闭此功能 - 支持自定义拾取快捷键 - 采用模块化设计,新增enhanced_coordinate_picker.py文件 ##### v1.7.6 (2026-01-19) - **增加录制操作窗体宽度**: - 将录制操作窗体宽度从400px增加到450px,确保坐标的Y轴完全显示 - 保持窗口高度为480px,确保所有控件仍然能够完全显示 ##### v1.7.5 (2026-01-19) - **优化录制模块状态图标和预览显示**: - 将状态图标的颜色与录制状态文字颜色保持一致(就绪绿色、录制中红色、暂停橙色、停止蓝色) - 优化了预览区域布局,解决了事件类型显示不全的问题 - 为预览框架设置了列配置,确保鼠标位置和事件类型标签都有足够的宽度 ##### v1.7.4 (2026-01-17) - **优化录制模块界面和用户体验**: - **录制进度条**:添加了录制进度条显示,直观展示录制时长占比 - **增强可视化状态**:添加了状态图标(✅ 准备就绪、🎥 录制中、⏸ 暂停、⏹ 停止),使录制状态更加直观 - **优化界面布局**:调整了录制面板的窗口高度,确保所有控件(包括新增的进度条和预览区域)都能完全显示 - **增强用户反馈**:在录制过程中提供更丰富的实时反馈信息 - **修复显示问题**:进一步增加窗口高度,确保底部的保存按钮和窗口置顶选项完全可见 ##### v1.7.3 (2026-01-17) - **优化保存录制对话框**: - 调整了保存录制对话框的尺寸和布局,使其更加美观 - 实现了对话框自适应控件大小的功能,确保所有标签文字完整显示 - 移除了强制换行限制,让标签文字能够自然显示 - 改进了尺寸计算逻辑,确保对话框足够宽以显示最长的标签 ##### v1.7.2 (2026-01-17) - **修复StepEditDialog按钮错误**: - 解决了编辑步骤窗口中点上一条/下一条按钮时出现的AttributeError错误 - 将prev_button和next_button从局部变量改为实例属性,确保在update_button_states方法中可以正确访问 - 修复了按钮状态更新的逻辑,确保按钮状态正确显示 ##### v1.7.1 (2026-01-17) - **新增配置验证模块**: - 创建了config_validator.py模块,实现完整的配置文件验证和修复功能 - 验证配置文件的基本结构、模板配置、事件配置和步骤配置 - 自动修复无效的配置项,确保程序稳定运行 - 提供详细的错误信息,帮助用户了解配置问题 - 支持验证Excel配置、系统配置和循环等待时间 ##### v1.8.62 (2026-01-25) - **编辑器进程管理**: - 实现了主程序关闭时自动关闭独立编辑器的功能 - 确保通过主程序界面的关闭工具按钮、窗体关闭按钮和文件菜单下的退出按钮都能正确关闭编辑器进程 - 添加了主窗口级别的进程跟踪机制,确保即使配置窗口被销毁也能正确关闭编辑器 - 使用Python标准库终止进程,提高了兼容性和可靠性 - **快捷键支持**: - 为文件菜单下的退出按钮添加了Ctrl+Q快捷键支持 - 确保快捷键也能正确关闭编辑器进程 - **状态管理优化**: - 完善了编辑器进程的状态管理,确保状态的一致性 - 在编辑器进程关闭时,自动更新主窗口级别的状态信息 ##### v1.8.63 (2026-01-26) - **滚动操作配置**: - 在流程编排中添加了对scroll操作类型的完整支持 - 实现了滚动方向选择功能,支持up、down、left、right四个方向 - 完善了滚动操作的验证逻辑,确保必须选择有效的滚动方向 - 保持了默认滚动量为200,确保滚动操作的一致性 - **界面优化**: - 在选择scroll操作类型时,自动显示滚动方向的下拉选择框 - 确保滚动操作的配置界面与其他操作类型保持一致的风格 ##### v1.8.61 (2026-01-25) - **修复编辑按钮功能**: - 解决了预配置事件中"编辑"和"批量编辑坐标"按钮灰色不可用的问题 - 修复了Treeview选择事件绑定冲突,确保按钮状态正确更新 - 确保在选择事件记录时,相应的编辑按钮能够正常启用 - **快速拾取功能兼容性**: - 优化了快速拾取坐标功能与编辑按钮的兼容性 - 确保"更新坐标"按钮功能与现有编辑功能无冲突 - 改进了事件处理逻辑,支持多个功能同时工作 ##### v1.8.64 (2026-01-29) - **状态栏显示优化**: - 实现了详细的执行状态显示,包括轮次、Excel行数、物料编码和运行时长 - 停止执行时显示完整的停止状态信息:"第X轮执行停止...上次处理到第Y行 物料编码:Z" - 修复了运行时长重复显示的问题,确保界面简洁清晰 - **配置流程界面位置记忆**: - 实现了配置窗口记住上次打开位置的功能 - 关闭配置窗口时自动保存当前位置到配置文件 - 重新打开时在历史位置显示,避免被主窗口遮挡 - **Excel数据处理优化**: - 实现了一次性缓存10行数据的预读取机制,提高执行可靠性 - 添加了空值检查,确保所有字段都有值,有空值时立即停止执行 - 优化了缓存管理,使用LRU策略确保内存使用合理 - **程序稳定性提升**: - 大幅提高了程序执行的稳定性,运行时间可达到50多分钟不出错 - 优化了Excel数据读取性能,减少了I/O操作 - 完善了错误处理机制,确保程序在遇到问题时能够优雅停止 ##### v1.8.66 (2026-02-01) - **悬浮窗进度渲染优化**: - 实现了按等待时间计算进度的机制,每100ms更新一次,动画效果更加平滑 - 确保进度条能够准确反映实际执行进度,避免卡顿现象 - **闪烁效果增强**: - 优化了完成时的闪烁效果,在进度达到100%时触发,3次闪烁,总时间900ms - 确保闪烁过程不被中断,新数据开始时重置状态 - 修复了后续行数据不闪烁的问题,每开始新一行数据时重新启动闪烁 - **左侧三角形颜色变化**: - 实现了左侧三角形图标的颜色变化效果,每500ms随机变换一次颜色 - 确保新数据开始时重新启动颜色变化,保持视觉反馈的连续性 - **状态管理优化**: - 完善了闪烁状态管理,使用is_blinking和has_completed_blink标志确保闪烁只触发一次 - 优化了新数据开始时的状态重置逻辑,确保所有状态都能正确重置 - **时间计算精确性**: - 实现了精确的时间计算,包括已完成步骤的等待时间和当前步骤的已消耗时间 - 确保进度计算的准确性和一致性 ##### v1.8.70 (2026-02-02) - **回放完成状态优化**: - 实现了回放完成后10秒自动切换到就绪状态的功能 - 回放完成时立即恢复面板显示,而不是等到10秒后才恢复 - 修复了状态指示器颜色的问题,确保回放完成时显示蓝色图标,返回就绪状态时显示绿色图标 - 修复了状态标签和时间标签颜色的问题,确保返回就绪状态时显示绿色 ##### v1.8.69 (2026-02-02) - **回放面板图标优化**: - 修改了RecordStatusIndicator类,让回放面板使用与悬浮窗相同的图标 - 就绪状态:使用蓝色的播放图标(▶) - 回放中状态:使用红色的播放图标(▶) - 暂停状态:使用橙色的暂停图标(⏸) - 停止状态:使用蓝色的停止图标(⏹) - **悬浮窗进度条颜色优化**: - 修改了FloatingPlaybackWindow类,让进度条的颜色跟着状态变化 - 就绪状态:使用蓝色 - 回放中状态:使用红色 - 暂停状态:使用橙色 - 完成状态:使用蓝色 ##### v1.8.68 (2026-02-02) - **状态圆点背景色优化**: - 优化了状态圆点的背景色设置,确保在不同状态下与面板背景色完全融合 - 在状态变化时动态更新画布背景色,避免白底问题 - 提升了录制面板的视觉协调性和美观度 - **录制面板和悬浮窗闪烁同步**: - 实现了统一的闪烁控制机制,使用单一定时器控制两个状态指示器的闪烁 - 确保录制面板和悬浮窗的闪烁效果完全同步,避免视觉不一致 - 优化了闪烁状态管理,简化了代码结构,提高了系统稳定性 - **悬浮窗状态图标优化**: - 修复了悬浮窗在暂停状态时图标不更新的问题,现在显示橙色暂停图标 - 修复了悬浮窗在停止状态时图标不更新的问题,现在显示蓝色停止图标 - 确保悬浮窗在所有状态下(就绪、录制中、暂停、停止)的图标都与录制面板保持一致 - 优化了从暂停状态恢复录制时的图标切换和闪烁恢复逻辑 ##### v1.8.67 (2026-02-02) - **回放模块作用域错误修复**: - 修复了playback_module.py中的UnboundLocalError问题 - 删除了局部导入的messagebox,使用文件顶部的全局导入 - 解决了回放时无法显示错误提示的问题 - **回放悬浮窗功能启用**: - 启用了回放悬浮窗功能,将配置文件中的use_floating_playback_window设置为true - 回放时自动创建悬浮窗,主回放面板最小化到任务栏 - 提供更好的回放体验和视觉反馈 ##### v1.8.65 (2026-01-29) - **悬浮窗时间更新优化**: - 修复了时间不实时更新的问题,添加了`time`模块的导入 - 实现了时间的实时更新,包括等待时间的计算 - 确保时间从点击开始执行那一刻就开始计时,直到用户暂停或停止程序执行 - **返回按钮响应速度优化**: - 移除了主界面在执行过程中的禁用状态,保持主界面响应 - 优化了返回回调函数,确保清理定时器、更新按钮状态等 - 实现了分段等待机制,在等待步骤中定期检查`RUN_FLAG`状态,确保点击返回按钮后立即响应 - **整体性能提升**: - 主界面返回按钮响应速度显著改善,不再卡顿 - 等待步骤中点击返回按钮也能立即退出等待并恢复主界面 - 保持了所有现有功能的正常运行,确保兼容性 ##### v1.8.60 (2026-01-25) - **流程编辑器防多开机制**: - 确保不会同时打开多个流程编辑器实例 - 添加了运行状态检测,防止重复启动 - **提示文字优化**: - 调整提示文字位置到底部中央 - 统一提示文字样式,使用微软雅黑14号粗体 - 打开编辑器提示文字使用红紫色(#7b1fa2),背景为浅紫色(#f3e5f5) - 保存成功提示文字保持原颜色,改为14号粗体 - 调整提示文字停留时间为6秒 - **功能聚焦**: - 禁用流程编辑器的"添加步骤"按钮 - 使独立流程编辑器专注于拖拽排序功能 - 步骤编排在旧的流程编排页面进行 - **模板信息显示**: - 正确显示模板名称、路径和事件统计 - 确保模板信息在流程编辑器中完整展示 - **数据同步**: - 确保流程编辑器和主程序之间的数据正确同步 - 完善了数据传递和更新机制 ##### v1.8.59 (2026-01-24) - **快速更新坐标功能**: - 为预配置事件添加了快速更新坐标功能 - 实现了操作列的显示/隐藏控制,默认隐藏 - 点击"更新坐标"按钮后显示操作列,启用"拾取坐标"功能 - 使用系统已实现的增强型坐标拾取器,与"坐标微调"工具保持一致 - 确保坐标拾取后正确更新到事件配置中 - **界面优化**: - 确保在添加操作列时不会丢失之前的列标题 - 为所有列重新设置了标题和宽度,确保它们正确显示 - 优化了操作列的显示逻辑,提高用户体验 ##### v1.8.58 (2026-01-24) - **Excel缓存机制**: - 实现了行级缓存,显著提高Excel数据读取性能 - 支持预读取数据到缓存,减少I/O操作 - 采用LRU策略管理缓存大小,避免内存溢出 - 自动检测Excel文件变化,确保数据一致性 - 优化了`get_row_data`、`get_cell_value`和`iter_cells_by_row_col`方法,优先使用缓存数据 - **缓存配置**: - 默认最大缓存行数为1000行 - 支持通过`cache_enabled`标志启用或禁用缓存 - 发生异常时自动清空缓存,确保系统安全 ##### v1.8.57 (2026-01-24) - **执行序号调整功能**: - 在步骤编辑对话框中添加了"执行序号"输入框,允许用户直接输入想要的执行序号 - 支持正整数输入,并有完整的输入验证 - 当用户修改序号时,系统会自动调整步骤位置,并重新计算所有步骤的执行序号 - 确保序号连续且唯一,避免出现重复或空缺 - **步骤编辑优化**: - 保持了原有的界面风格 - 合理调整了对话框布局,确保所有控件都能正常显示 - 提供清晰的错误提示信息,指导用户正确输入 ##### v1.8.56 (2026-01-24) - **输入验证颜色区分显示**: - 在悬浮窗日志中,成功的验证结果以绿色显示 - 失败的验证结果以橙色显示 - 错误消息以红色显示 - 提高程序的可读性,便于用户快速识别验证结果 - **暂停/继续功能**: - 添加了"继续执行"按钮,位于"停止执行"按钮旁边 - 当输入验证失败时,程序会自动暂停执行,等待用户操作 - 用户可以查看问题后,点击"继续执行"按钮恢复执行流程 - 暂停时,状态栏会显示"执行暂停:输入验证失败"的提示信息 - **UI 布局调整**: - 调整了按钮的布局,确保"继续执行"按钮正确显示在 UI 中 - 调整了使用说明按钮和窗口置顶切换按钮的位置,避免布局冲突 ##### v1.8.55 (2026-01-23) - **坐标微调功能优化**: - 修复增强型坐标拾取器无法响应点击和键盘事件的问题 - 添加全局事件捕获机制,确保全屏透明窗口能够捕获所有鼠标和键盘事件 - 优化事件释放逻辑,确保在停止拾取后,其他窗口能够正常响应事件 - 增强焦点设置,确保能够捕获键盘事件 - 确保全屏窗口未被禁用,能够正常响应事件 ##### v1.8.54 (2026-01-23) - **日志面板优化**: - 实现日志面板独立置顶功能,不受主界面置顶状态影响 - 修复日志面板不显示实时日志信息的问题 - 确保日志面板不抢夺焦点,用户可在其他窗口正常操作 - 最小化修改,仅调整日志面板模块 - 提升核心功能录入数据的稳定性 ##### v1.8.52 (2026-01-23) - **版本更新**: - 更新项目版本号为v1.8.52 - 确保版本标签同步到本地和远程仓库 - 完善版本管理流程 ##### v1.8.51 (2026-01-22) - **面板关闭限制功能实现**: - 实现了在录制或回放进行中时不允许关闭面板的功能 - 为录制面板和回放面板都添加了关闭事件处理 - 确保在回放或录制进行中时,用户无法关闭相应的面板 - 避免了面板关闭后悬浮窗未一起关闭带来的问题 - **控件销毁错误修复**: - 修复了在面板关闭后尝试访问已销毁控件的错误 - 在设置status_indicator的状态之前,检查status_indicator是否仍然存在,以及它的canvas是否仍然存在 - 为回放模块中的所有标签配置操作添加了类似的检查 - **录制倒计时显示问题修复**: - 修复了倒计时文字不完整显示的问题 - 使用固定大小的窗口和垂直布局 - 确保颜色对比度,使用浅蓝色背景、红色倒计时数字和黑色提示文字 - **倒计时窗口透明化与布局优化**: - 移除了倒计时窗口的背景方框色块,只保留透明文字标签 - 增加了倒计时数字和提示文字之间的垂直间距,提高可读性 - 确保倒计时窗口能够自适应不同字体大小,文字完整显示 - 优化了窗口居中显示和置顶功能 ##### v1.8.50 (2026-01-22) - **回放悬浮窗异常修复**: - 修复了回放悬浮窗的`AttributeError: 'FloatingPlaybackWindow' object has no attribute 'panel'`异常 - 移除了导致异常的`panel`参数和相关逻辑 - 确保应用程序能够正常启动和运行 - **悬浮窗功能恢复**: - 恢复了录制和回放悬浮窗的原始功能,确保右击录制悬浮窗时能正常弹出保存对话框 - 保留了点击开始录制/开始回放时面板自动最小化的功能 - 确保悬浮窗的基本功能(拖拽、状态显示、暂停/继续、停止)都能正常工作 - **代码清理**: - 清理了不必要的代码和参数,提高了代码的可读性和稳定性 - 确保录制和回放功能的正常运行 ##### v1.8.49 (2026-01-22) - **回放卡死问题修复**: - 修复了回放操作时程序卡死的问题,将悬浮窗创建操作移到主线程事件循环中执行 - 优化了录制和回放悬浮窗的创建逻辑,确保不会阻塞主线程 - 提高了应用程序在回放过程中的响应速度和稳定性 - **悬浮窗同步与控制优化**: - 实现了录制和回放悬浮窗随对应面板关闭而关闭的功能 - 添加了悬浮窗右键事件后返回到面板界面的功能 - 确保了悬浮窗与面板之间的状态同步和操作一致性 - **多悬浮窗问题修复**: - 解决了点击"继续录制"后出现多个悬浮窗的问题 - 优化了悬浮窗实例管理,避免重复创建 ##### v1.8.41 (2026-01-21) - **流程编排界面优化**: - 修复了流程编排页面底部按钮的间距问题,确保按钮间距统一美观 - 创建了统一的按钮框架,实现按钮的均匀分布 - 优化了按钮布局,使其在窗口大小调整时能够保持良好的显示效果 ##### v1.8.40 (2026-01-21) - **模板批量删除功能修复**: - 修复了模板批量删除功能的缩进错误,确保for循环正确执行 - 实现了真正的批量删除逻辑,支持同时删除多个选中的模板 - 优化了删除流程:检查模板存在性、删除配置和关联文件、保存配置 - 提供了详细的删除结果反馈,显示删除的模板数量和相关文件 - 增强了错误处理,确保删除过程中的异常不会影响其他模板的删除 ##### v1.8.39 (2026-01-21) - **录制悬浮窗功能实现**: - 实现了独立的录制悬浮窗,与回放悬浮窗类似,支持拖动和状态显示 - 悬浮窗显示录制状态、事件类型和进度条 - 支持闪烁效果直观显示录制状态 - 与主界面状态栏实时同步录制状态 - **录制悬浮窗UI优化**: - 修复了悬浮窗无法拖动的问题,实现了完整的拖拽功能 - 调整了悬浮窗初始位置到右上角 - 优化了文字标签字体大小,确保完整显示 - 统一了颜色方案:录制中红色,暂停橙色,停止蓝色,就绪绿色 - **录制状态同步修复**: - 修复了暂停后继续录制时主面板和悬浮窗状态不同步的问题 - 确保录制、暂停、停止状态下的颜色和状态文本一致 - 修复了保存对话框中点击取消后状态不同步的问题 - **录制功能稳定性提升**: - 增强了代码的鲁棒性,添加了更多的错误处理和状态检查 - 确保在各种边缘情况下都能正常工作 - 优化了悬浮窗的显示和隐藏逻辑 - **颜色方案统一**: - 就绪状态:绿色(#4caf50) - 录制中状态:红色(#f44336),带闪烁效果 - 暂停状态:橙色(#ff9800) - 停止状态:蓝色(#3498db) - 确保主面板、状态栏和悬浮窗的颜色显示一致 ##### v1.8.0 (2026-01-20) - **修复录制和回放互斥问题**: - 扩展回放状态检查条件,确保录制模块能正确检测所有回放状态 - 解决了先开始回放再开始录制时互斥检查失效的问题 - 确保录制和回放操作完全互斥,提高系统稳定性 - **修复回放状态信息显示问题**: - 使用after方法确保在主线程中更新状态,解决线程安全问题 - 确保回放过程中显示详细的事件信息(如"正在回放事件 X/Y: click") - 修复了多次回放时状态不更新的问题,确保每次回放都能正确显示状态 - **优化用户体验**: - 在回放过程中禁用循环播放和窗口置顶复选框 - 回放结束后自动恢复所有控件状态 - 提供清晰的状态消息和颜色反馈 ##### v1.7.0 (2026-01-17) - **新增录制回放功能**: - 在RecordPanel中添加了回放按钮,支持回放录制的操作 - 实现了后台线程回放机制,避免阻塞GUI - 提供实时的回放状态反馈(回放中/回放完成/回放失败) - 在回放过程中禁用其他操作按钮,确保回放安全 - **优化编辑菜单**: - 删除了无实际功能的"粘贴"和"剪切"菜单项 - 清理了不再使用的paste和cut方法,保持代码整洁 - **增强用户体验**: - 回放状态使用橙色标识,与其他状态颜色区分 - 回放结束后自动恢复按钮状态 - 提供清晰的状态消息和颜色反馈 ##### v1.6.3 (2026-01-16) - **解决配置窗口尺寸无法修改的问题**: - 优化了ConfigDialog类的窗口尺寸设置逻辑 - 使用after方法延迟设置窗口尺寸,确保所有组件初始化完成 - 修复了center_child_window函数覆盖窗口尺寸的问题 - **修复窗口居中显示问题**: - 将update_idletasks()改为update(),强制窗口立即更新尺寸信息 - 确保窗口能够正确居中显示并使用指定的尺寸 - **确保系统配置标签页完整显示**: - 将配置窗口默认尺寸从1200x950增加到1300x1100 - 确保系统配置标签页的所有内容都能在默认窗口大小下完整显示 - **优化窗口尺寸设置逻辑**: - 解析尺寸常量并明确传递给center_child_window函数 - 确保窗口使用正确的尺寸设置 ##### v1.6.2 (2026-01-16) - **修复程序启动后立即保存配置导致配置文件损坏的问题**: - 添加配置验证和修复机制,确保templates结构和current_template存在 - 防止配置文件因缺少必要结构而损坏 - **修复模板导入失败问题**: - 同步模板到根级别并设置有效的current_template - 确保导入的模板可以正常使用 - **修复按钮文字颜色显示问题**: - 移除硬编码的白色文字颜色 - 使用主题样式确保按钮文字清晰可见 - **统一对话框样式和显示**: - 修复编辑步骤对话框样式不统一和显示不全的问题 - 修复预配置事件编辑对话框样式不统一和显示不全的问题 - 增大对话框尺寸,应用统一的主题样式 - **实现步骤移动时的选中状态保持**: - 编辑录制内容时,选中一行记录点击上移/下移,保持选中状态不消失 - 实现全选/取消全选功能,提高操作效率 - **优化输入验证**: - 确保Excel路径和等待时间的合法性 - 提供合理的范围限制和格式验证 - **添加菜单助记键支持**: - 实现Alt+字母快捷键功能 - 使用underline参数设置助记键 - **修复标签描述空白问题**: - 确保创建的版本标签包含详细的更新说明 ##### v1.5.3 (2026-01-15) - **修复Excel文件路径验证问题**: - 修复Excel文件路径验证问题,从完整路径中提取用户期望的最后一个点的路径 - 实现对路径点的单独处理,只存储所需的Excel文件扩展名,例如.xls、.xlsx、.xlsm等 - 改变了从可选扩展名的标记预设为固定的扩展名进行检查的方法 - 所有修改均为非侵入式,不影响核心自动化功能 - **修复保存按钮无操作的错误**: - 修复保存按钮无操作的错误,建立返回终结定时时,清除存在状态标记,防止过早触发 - 所有修改均为非侵入式,不影响核心自动化功能 ##### v1.5.2 (2026-01-14) - **修复按钮无限点击问题**: - 修复Excel浏览按钮无限点击问题,在选择文件期间禁用窗口 - 修复配置窗口关闭按钮无限点击问题,添加标志位防止重复打开确认对话框 - 修复配置窗口保存按钮重复点击问题,确保操作原子性 - 所有修复均为非侵入式,不影响核心自动化功能 ##### v1.5.0 (2026-01-13) - **日志面板功能重要改进**: - 修复首次展开时位置错位问题,确保正确显示在主窗口下方 - 修复主窗口移动时日志面板不跟随问题,提高磁吸稳定性 - 改进磁吸逻辑,确保内容区域精确对齐,避免错位 - 解决上方磁吸时被主程序标题栏遮挡问题 - 增加双击自动吸附功能,提高操作便捷性 - 提高磁吸感应灵敏度至35像素,易于触发 - 新增log_panel.py专门处理日志面板功能 - 新增status_bar.py专门处理状态栏功能 - 代码结构优化,功能模块分离,提高可维护性 ##### v1.4.4 (2026-01-11) - **改进运行时长显示功能**: - 添加专门的运行时长标签,实时显示程序运行的总时长 - 使用定时器定期更新运行时长,确保时间准确且实时递增 - 移除状态标签中的重复运行时长信息,避免信息冗余 - 确保在程序执行的各个阶段(包括等待循环)都能正确更新运行时长 - 程序结束时重置运行时长为0秒 ##### v1.4.3 (2026-01-11) - **改进配置流程页面布局**: - 在配置流程页面顶部新增可扩展工具栏 - 将"保存所有配置"按钮从底部移至顶部工具栏 - 确保保存按钮始终可见,避免因选项卡内容过多导致看不到保存按钮 - 为工具栏采用灵活布局设计,支持后续扩展添加更多功能按钮 ##### v1.4.2 (2026-01-11) - **改进颜色输入功能**: - 修复吸管工具光标持久化问题,确保使用后恢复系统默认光标 - 为颜色输入框添加实时输入验证,支持多种颜色格式(HEX、RGB、颜色名称) - 优化颜色输入框焦点处理,自动选中对应单选按钮,提高操作便捷性 - 添加颜色预览功能,实时显示输入颜色值的效果 ##### v1.4.1 (2026-01-09) - **修复Excel批量生成事件核心逻辑**: - 修复事件名称重复问题,添加重复检查和确认对话框 - 修复引用事件不存在问题,增加存在性检查和警告提示 - 修复Excel列名转数字缺失问题,实现col_letter_to_num函数 - 修复Excel范围处理逻辑,确保end_row=0/end_col=0时使用最大行/列 - **修复模板管理系统**: - 修复模板配置保存和加载机制,确保所有配置数据正确存储到模板中 - 优化配置对话框初始化,确保自动加载当前活动模板的所有配置数据 - 确保执行流程使用正确的配置源,从模板中获取配置 - 修复active template管理机制,确保在会话间正确持久化 - **修复pyperclip导入问题**: - 修复输入事件执行时出现的"cannot access local variable 'pyperclip'"错误 - 在输入事件处理逻辑中添加局部导入,确保pyperclip在所有使用场景下都能被正确访问 - 确保无论是否使用Excel数据,剪贴板输入方式都能正常工作 - **修复窗口/界面逻辑问题**: - 修复子窗口居中计算偏移问题,使用winfo_rootx/winfo_rooty排除装饰栏 - 修复主窗口子窗口状态判断错误,确保关闭子窗口时正确更新状态 - 为使用说明窗口添加滚动条,支持长文本内容查看 - 为批量生成对话框添加滚轮支持,提升用户体验 - **修复配置持久化逻辑缺失**: - 修复CONFIG_DATA初始化问题,确保配置正确加载 - 实现ExcelReader上下文管理器,确保文件正确关闭 - 完善输入方式实现,支持根据配置选择不同输入方式 - 确保pyautogui.FAILSAFE已启用,支持紧急停止 - **修复文档与代码不一致问题**: - 完善日志配置,实现关键步骤日志记录 - 实现模板导入导出功能,支持模板备份和分享 - 确保双击逻辑正确实现,提高输入成功率 - **提升用户体验和代码规范**: - 添加窗口置顶切换功能,用户可自定义选择 - 优化界面布局,调整主窗口尺寸为800x300,支持垂直调整 - 统一使用常量定义窗口尺寸,消除魔法数字 - 改进按钮布局,添加sticky属性,使界面更规范 - **增强输入事件可靠性**: - **修复间歇性输入失败问题**: - 增强了输入事件验证机制,验证实际输入值与预期值是否一致 - 实现了fallback机制,当剪贴板粘贴失败时自动尝试typewrite方法 - 优化了双击事件处理,添加了详细日志和0.2秒延迟确保事件完成 - 增强了日志记录,使用视觉指示器(✓, ⚠, ✅)提高可读性 - 确保双击事件完成后再进行下一步操作,避免控件未准备好的问题 - **输入验证与反馈**: - 为两个输入事件处理部分添加了输入验证 - 输出详细的验证结果,包括预期值和实际值的对比 - 当验证失败时,自动尝试备用输入方式 - **日志增强**: - 为所有输入操作添加了更详细的日志 - 记录了输入方式、剪贴板内容验证等关键信息 - 提供了更清晰的执行状态反馈 ##### v1.4.0 (2026-01-09) - 新增Excel数据读取功能,支持先行后列顺序 - 新增多模板管理,支持新建、切换、删除 - 新增双击目标控件进入编辑模式,提高输入成功率 - 新增多种输入方式(剪贴板粘贴、typewrite、逐字符输入),支持中文和混合数据 - 新增详细调试日志,便于问题诊断 - 优化配置保存和加载逻辑 - 修复窗口位置问题,确保配置窗口始终在屏幕可见区域 - 增强配置保护机制,关闭配置窗口时提示保存,防止数据丢失 - 优化主窗口关闭逻辑,保护未保存的配置 - 自动处理各种格式的数据,包括带连字符的数据 ##### v1.0.0 (2024-01-07) - 初始版本,支持基本的事件配置和流程执行 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 注意事项 - 执行过程中请勿移动目标控件位置 - 循环等待时间需≥1秒,确保操作间隔合理 - 紧急停止功能依赖pyautogui的FAILSAFE机制,默认开启 - 配置文件保存在程序同目录下的auto_fill_config.json #### 常见错误处理 - **Excel文件不存在**:程序会显示错误提示,检查文件路径是否正确 - **事件配置缺失**:执行时会提示"未找到事件",请检查流程配置中的事件名称是否正确 - **坐标无效**:确保使用自动拾取功能获取准确坐标,或手动调整坐标值 - **输入失败**:程序会尝试多种输入方式,若仍失败请检查目标控件是否处于可编辑状态 - **配置保存失败**:检查文件权限,确保程序有写入权限 #### 许可证 MIT License