# java自动运行Windows软件 **Repository Path**: tranquility-behind-the-waves/automatic-operation ## Basic Information - **Project Name**: java自动运行Windows软件 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-19 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动操作工具 这是一个基于Java开发的自动操作工具,可以帮助用户自动执行重复性的软件操作任务。通过记录和回放操作序列,减少重复工作,提高工作效率。 ## 软件界面预览 ### 任务列表界面 ![任务列表](img/任务列表.png) ### 任务编辑界面 ![任务编辑](img/任务编辑.png) ### 步骤编辑界面 ![步骤编辑](img/步骤编辑.png) ## 主要功能 1. 记录软件操作步骤,包括鼠标点击、快捷键操作和文本粘贴 2. 自动化执行已保存的操作序列 3. 智能获取鼠标坐标位置(支持稳定检测) 4. 支持设置操作间等待时间 5. 支持动态变量,增强任务灵活性 ## 技术架构 - 基于Spring Boot 3开发,利用其依赖注入和自动配置功能 - 使用Java AWT Robot实现鼠标键盘模拟 - Swing图形界面,提供友好的用户交互 - 序列化存储任务配置,确保数据持久化 - 模块化设计,便于扩展和维护 ## 实现原理 ### 1. 鼠标键盘模拟 - 使用`java.awt.Robot`类模拟鼠标移动、点击和键盘按键 - 通过`robot.mouseMove(x, y)`移动鼠标到指定坐标 - 通过`robot.mousePress()`和`robot.mouseRelease()`实现鼠标点击 - 通过`robot.keyPress()`和`robot.keyRelease()`实现键盘按键 ### 2. 坐标捕获 - 使用`CoordinateCapture`类监控鼠标位置 - 通过`MouseInfo.getPointerInfo().getLocation()`获取实时鼠标位置 - 当鼠标位置保持稳定5秒后,自动捕获坐标 - 使用调度器(`ScheduledExecutorService`)实现周期性检测 ![坐标捕获界面](img/坐标捕获.png) ### 3. 快捷键录制 - 使用`KeyboardFocusManager`全局捕获键盘事件 - 记录用户按下的所有按键,构建快捷键组合 - 支持修饰键(Ctrl、Alt、Shift、Win)和普通键的组合 - 当用户松开按键后自动保存快捷键组合 ![快捷键录入界面](img/快捷键录入.png) ### 4. 任务执行 - 通过`TaskExecutorService`服务管理任务执行 - 按照步骤顺序依次执行操作 - 支持三种操作类型:坐标点击、快捷键和文本粘贴 - 在每个步骤之间添加可配置的等待时间 ![开始任务界面](img/开始任务.png) ## 详细使用指南 ### 创建自动任务 1. 启动应用后,在主界面点击"新建任务"按钮 2. 在弹出的对话框中输入任务名称(必填) 3. 选择软件启动文件(可选,如需自动启动目标程序) 4. 点击"创建"按钮,进入任务编辑界面 5. 添加操作步骤,构建完整的操作序列 6. 点击"保存"按钮保存任务 ### 添加和编辑步骤 1. 在任务编辑界面点击"添加步骤"按钮 2. 在步骤设置对话框中,输入步骤名称(便于识别) 3. 选择操作类型: - 使用快捷键:通过键盘快捷键执行操作 - 使用坐标:通过鼠标点击特定位置执行操作 - 使用复制粘贴:向目标位置粘贴文本 4. 根据选择的操作类型,设置相应参数 5. 设置执行后等待时间(秒),控制步骤间隔 6. 点击"确定"保存步骤 ### 录制快捷键详细步骤 1. 在步骤编辑界面选择"使用快捷键"选项 2. 点击"录制快捷键"按钮,打开录制对话框 3. 点击"开始录制"按钮,对话框进入录制状态 4. 按下您想要录制的快捷键组合(如Ctrl+Shift+A) 5. 松开按键后,系统会自动保存该组合 6. 确认快捷键组合无误后,点击"确认"按钮 7. 快捷键会自动填入到步骤设置界面中 ### 捕获坐标详细步骤 1. 在步骤编辑界面选择"使用坐标"选项 2. 点击"捕获坐标"按钮,打开坐标捕获对话框 3. 点击"开始捕获"按钮,开始监控鼠标位置 4. 将鼠标移动到目标位置(如按钮、输入框等) 5. 保持鼠标静止不动约5秒钟 6. 系统会自动捕获坐标,并在对话框中显示 7. 捕获成功后,对话框会自动关闭,坐标值填入步骤设置界面 ### 设置文本粘贴 1. 在步骤编辑界面选择"使用复制粘贴"选项 2. 选择粘贴值类型: - 固定值:输入固定的文本内容 - 动态值:选择或创建一个动态变量 3. 如选择固定值,直接在文本框中输入内容 4. 如选择动态值,从下拉列表选择已有变量或创建新变量 5. 点击"确定"保存步骤 ### 调整步骤顺序 1. 在任务编辑界面的步骤列表中选择要调整的步骤 2. 使用"上移"和"下移"按钮调整步骤的执行顺序 3. 步骤会按照列表中的顺序从上到下依次执行 ### 运行任务 1. 在主界面的任务列表中选择要运行的任务 2. 点击"运行任务"按钮 3. 如果任务包含动态变量,系统会提示输入变量值 4. 确认后,系统会按照预设步骤自动执行操作 5. 执行过程中请勿移动鼠标或使用键盘 6. 任务执行完成后会显示执行结果 ## 核心类和方法说明 ### 1. AutoTask 类 负责存储任务配置信息,包括任务名称、启动文件路径和步骤列表等。 ### 2. Step 类 表示一个操作步骤,包含步骤名称、操作类型、坐标信息、快捷键、等待时间等属性。 ### 3. TaskExecutorService 类 负责执行自动任务,包括启动应用程序、模拟鼠标点击、按下快捷键和文本粘贴等操作。 ### 4. CoordinateCapture 类 实现坐标捕获功能,通过监控鼠标位置变化,在位置稳定后自动捕获坐标。 ### 5. MainFrame 类 主界面类,提供任务管理、编辑和执行的用户界面。 ### 6. TaskEditDialog 类 任务编辑对话框,用于创建和编辑任务信息。 ### 7. StepDialog 类 步骤编辑对话框,用于设置步骤参数,包括快捷键录制和坐标捕获功能。 ## 注意事项 - 运行任务时请勿移动鼠标或键盘,以免干扰自动操作 - 对于无法通过坐标稳定点击的界面元素,优先使用快捷键 - 任务数据保存在用户目录下的.auto-tasks文件夹中 - 坐标位置可能因屏幕分辨率变化而失效,需要重新捕获 - 如任务执行失败,可尝试增加步骤间等待时间 - 复杂操作建议拆分为多个简单步骤,提高稳定性 ## 系统要求 - Java 17或更高版本 - Windows操作系统 - 最低1GB内存 - 屏幕分辨率1024x768或更高 ## 常见问题解答 1. **Q: 为什么坐标捕获不成功?** A: 请确保鼠标在目标位置保持静止至少5秒,期间不要移动鼠标。 2. **Q: 如何录制组合快捷键?** A: 在录制快捷键时,同时按下所有需要的按键(如Ctrl+Shift+A),系统会自动识别组合。 3. **Q: 任务执行过程中可以中断吗?** A: 可以,按下Esc键可以中断正在执行的任务。 4. **Q: 如何处理需要动态输入的情况?** A: 可以使用"动态值"功能,在运行任务前会提示输入具体值。 5. **Q: 录制的快捷键不起作用怎么办?** A: 确认目标程序是否支持该快捷键,或尝试使用坐标点击对应按钮。