# CocoPyRPA-QT
**Repository Path**: i54Coconi/CocoPyRPA-QT
## Basic Information
- **Project Name**: CocoPyRPA-QT
- **Description**: 基于PyQt5开发的CocoPyRPA的GUI版本
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 0
- **Created**: 2023-12-13
- **Last Updated**: 2025-05-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CocoPyRPA-QT
基于PyAutoGUI和PyQt5开发的CocoPyRPA的GUI版本,开箱即用,无需任何配置
### 一、**程序界面预览**
> #### 主界面
>
> 
>
> #### 指令界面
>
> 
>
> #### cmd指令编辑界面
>
> 
>
>
### 二、功能演示
### 三、文件结构
#### 1、源码文件结构

#### 2、任务目录结构

### 四、**功能说明(✅为已实现功能❌为暂未实现功能)**
#### 1、指令功能说明
##### ▶ 鼠标类指令
| 操作 | 快捷键 | 描述 |
| :------------- | :----: | :----------------------------- |
| ✅ 单击左键 | Ctrl+1 | 模拟鼠标单击左键 |
| ✅ 双击左键 | Ctrl+2 | 模拟鼠标双击左键 |
| ✅ 单击右键 | Ctrl+3 | 模拟鼠标单击右键 |
| ✅ 滚轮 | Ctrl+4 | 模拟鼠标滚轮 |
| ✅ 鼠标定点移动 | Ctrl+5 | 鼠标移动至屏幕指定坐标处 |
| ✅ 鼠标相对移动 | Ctrl+6 | 鼠标相对当前位置移动指定坐标值 |
##### ▶ 键盘类指令
| 操作 | 快捷键 | 描述 |
| :---------------- | :----: | :----------------------------------------------------------- |
| ✅ 按键 | 无 | 模拟键盘单个按键按下与释放 |
| ✅ 热键组合 | 无 | 模拟键盘热键组合如(Ctrl-C) |
| ✅ 键盘输入TXT内容 | 无 | 获取TXT文本内容,对内容中的每个字符执行键盘按键按下,然后释放 |
##### ▶ 系统类指令
| 操作 | 快捷键 | 描述 |
| :----- | :----: | :------------------------------------------------ |
| ✅ 延时 | 无 | 指令执行等待时间(秒) |
| ❌ 定时 | 无 | 到指定时刻开始执行(暂时不可用,预计后期更新) |
##### ▶ cmd指令
| 操作 | 快捷键 | 描述 |
| :-------------- | :----- | :---------------- |
| ✅ 自定义cmd指令 | 无 | 打开cmd指令编辑器 |
| (自定义内容)... | 无 | (自定义内容)... |
##### ▶ 其它类指令
| 操作 | 快捷键 | 描述 |
| :----- | :----- | :------------------------------------------------ |
| ✅ 输入 | 无 | 复制指令表 实例对象 内容然后粘贴在指定区域 |
#### 2、菜单项、工具项说明
| 操作 | 快捷键 | 描述 |
| :----------------- | :--------------- | :----------------------------------------------------------- |
| ✅ 新建任务 | Ctrl+N | 新建任务目录 |
| ✅ 打开 | Ctrl+O | 打开任务目录所在文件夹,即 **work/TASKS** 目录 |
| ✅ 保存 | Ctrl+S | 保存当前指令列表到选中的任务目录(⚠注意:**若未选中任何任务则默认保存到第一个任务**) |
| ✅ 另存为 Excel表格 | 无 | 将当前表格内指令**保存到选中的任务目录下**的**同名Exce**l表内(⚠注意:**若未选中任何任务则默认保存到第一个任务**) |
| ✅ 加载 Excel 数据 | 无 | 默认加载选中的任务目录下同名Excel表格数据(⚠注意:**若未选中任何任务则默认加载第一个任务下的同名Excel表**) |
| ✅ 运行一次 | Ctrl+Shift+F5 | 将当前窗口指令表内的所有(**已启用的**)指令执行一次(⚠注意:**运行不会保存指令**,可作为案例临时测试) |
| ✅ 指定运行 | Ctrl+Shift+F6 | 将当前窗口指令表内**选中的**(**已启用的**)指令执行一次(⚠注意:运行不会保存指令,可作为单个指令测试) |
| ✅ 复制 | Ctrl+Shift+C | 复制选中的一行指令 |
| ✅ 粘贴 | Ctrl+Shift+V | 粘贴一行指令到选中的行(**会覆盖选中一行的内容**) |
| ✅ 删除 | Delete | 删除选中的一行指令 |
| ✅ 增加 | 无 | 在指令表最后增加一行空白指令 |
| ✅ 插入上方 | 无 | 在选中的一行上方插入一行空白指令 |
| ✅ 插入下方 | 无 | 在选中的一行下方插入一行空白指令 |
| ✅ 上移 | up(上方向键) | 将当前**选中的**一行指令上移 |
| ✅ 下移 | down(下方向键) | 将当前**选中的**一行指令下移 |
| ✅ 主题 | 无 | 修改主题配置 |
| ✅ 截图 | 无 | 将屏幕上需要点击的区域截图(图片默认保存在 **work/IMAGES** 文件夹下) |
#### 3、指令列表填写说明及规范
指令列表目前一共有10列,分别为
> **1、操作图:** 无需用户输入,有图片时会显示图片预览,无图片时会显示操作类型默认图标
>
> **2、操作类型:** 有鼠标、键盘、系统、cmd指令、其它,点击具体指令会自动填入对应类型(可以手动修改)
>
> **3、功能指令:** 即为上述的 `四、功能说明`(可以手动修改)
>
> **4、实例对象:** 根据不同的指令而不同。
>
> - 鼠标点击操作的实例对象都是图片;
> - `滚轮`的实例对象是页面滚动像素;
> - `鼠标定点移动`的实例对象是屏幕的坐标位置;
> - `鼠标相对移动`的实例对象是选取的两处坐标的**相对坐标**(如坐标1**`[100,100]`**,坐标2**`[200,300]`**,则相对坐标为**`[200-100,300-100]`**即**`[100,200]`**,表示鼠标x轴增加100像素即**右移100像素**,y轴增加200像素即**下移200像素**);
> - `按键`的实例对象是需要按下的键盘符号(如**enter**、**esc**、**f11**等);
> - `热键组合`的实例对象是快捷键组合(如:**win+R**、**Alt+f4**等);
> - `键盘输入TXT内容`的实例对象是待输入`.txt`后缀文件的路径(若`.txt`文件保存在 **work\ ** 文件夹下则可以使用相对路径如:**work\TASKS\键盘输入TXT内容测试\text.txt**,若.txt文件保存在其它地方则必须使用绝对路径如:**D:\test.txt**)
>
> **5、循环次数:** 单条指令的重复执行次数
>
> **6、容错次数:** 一般用于鼠标点击图片时**图片未找到**的情况,当容错次数设为10次时则程序会每隔一定时间去整个屏幕上找目标图片,重复10次后若还是找不到则跳过此条指令继续执行下一条,**防止程序僵死**
>
> **7、图片路径:** 需要点击图片时填入目标图片路径(注意:图片若在 **work/IMAGES** 文件夹下则图片路径可以是**相对路径**如:“work\IMAGES\IMAGE_2024-1-25-122815.png”;若图片在别处则需要**完整的绝对路径**如:“D:\CocoPyRPA-QT\IMAGE_2023-11-25-122815.png”。无论哪种路径都⚠==**不能含有中文**==⚠)
>
> **8、是否启用:** 是否启用此条指令。填“0”表示不启用,程序执行到此条指令会自动跳过,填“1”表示启用
>
> **9、多行重复:** 😎高级功能,填写格式为**`数字,数字`**中间的“`,`”**必须是半角**即英文的;**“第一个数字”**表示需要程序从当前填写的这一条指令开始一直**到哪一行指令**结束,期间的所有指令都依次**重复执行“第二个数字”次**.举个例子:若当前填写多行重复项的指令是**第3条**指令,填的内容为 **`5,6`** ,则表示当程序执行到第3条指令时会**进入局部指令块循环**,即循环执行**3 --> 4 --> 5** 三条指令一共**重复6次**,结束后便接着执行后面的指令。(注意:填写要求左边第一个数字在当前指令序号之后且不超过最后一条指令序号,即 `nowNum < num <= endNum`
>
> **10、备注:** 指令作用备注
### 五、**其它说明**
指令 <按键>、<热键组合>支持的按键参数为:
| '\t' | '\n' | '\r' | ' ' | '!' | '"' | '#' | '$' | '%' | '&' |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| "'" | '(' | ')' | '*' | '+' | ',' | '-' | '.' | '/' | '0' |
| '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | ':' |
| ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\\' | ']' | '^' |
| '_' | '`' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' |
| 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' |
| 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | '{' | '\|' |
| '}' | '~' | 'accept' | 'add' |
| ------------- | ---------------- | ------------------- | ---------------- |
| 'alt' | 'altleft' | 'altright' | 'apps' |
| 'backspace' | 'browserback' | 'browserfavorites' | 'browserforward' |
| 'browserhome' | 'browserrefresh' | 'browsersearch' | 'browserstop' |
| 'capslock' | 'clear' | 'convert' | 'ctrl' |
| 'ctrlleft' | 'ctrlright' | 'decimal' | 'del' |
| 'delete' | 'divide' | 'down' | 'end' |
| 'enter' | 'esc' | 'escape' | 'execute' |
| 'f1' | 'f10' | 'f11' | 'f12' |
| 'f13' | 'f14' | 'f15' | 'f16' |
| 'f17' | 'f18' | 'f19' | 'f2' |
| 'f20' | 'f21' | 'f22' | 'f23' |
| 'f24' | 'f3' | 'f4' | 'f5' |
| 'f6' | 'f7' | 'f8' | 'f9' |
| 'final' | 'fn' | 'hanguel' | 'hangul' |
| 'hanja' | 'help' | 'home' | 'insert' |
| 'junja' | 'kana' | 'kanji' | 'launchapp1' |
| 'launchapp2' | 'launchmail' | 'launchmediaselect' | 'left' |
| 'modechange' | 'multiply' | 'nexttrack' | 'nonconvert' |
| 'num0' | 'num1' | 'num2' | 'num3' |
| 'num4' | 'num5' | 'num6' | 'num7' |
| 'num8' | 'num9' | 'numlock' | 'pagedown' |
| 'pageup' | 'pause' | 'pgdn' | 'pgup' |
| 'playpause' | 'prevtrack' | 'print' | 'printscreen' |
| 'prntscrn' | 'prtsc' | 'prtscr' | 'return' |
| 'right' | 'scrolllock' | 'select' | 'separator' |
| 'shift' | 'shiftleft' | 'shiftright' | 'sleep' |
| 'space' | 'stop' | 'subtract' | 'tab' |
| 'up' | 'volumedown' | 'volumemute' | 'volumeup' |
| 'win' | 'winleft' | 'winright' | 'yen' |
| 'command' | 'option' | 'optionleft' | 'optionright' |