pyautogui-automation

基于 PyAutoGUI 的桌面自动化工具。支持截图、鼠标键盘控制、图像识别、颜色检测等操作。当用户需要自动化操作桌面应用、执行 UI 测试或重复性任务时触发。

Skill file

Preview skill file
---
name: pyautogui-automation
description: 基于 PyAutoGUI 的桌面自动化工具。支持截图、鼠标键盘控制、图像识别、颜色检测等操作。当用户需要自动化操作桌面应用、执行 UI 测试或重复性任务时触发。
---

# PyAutoGUI 自动化操作

## 功能概览

| 功能类别 | 支持的操作                                           |
| -------- | ---------------------------------------------------- |
| 截图     | 全屏截图、区域截图、截图到剪贴板                     |
| 鼠标控制 | 点击、双击、移动、相对移动、拖拽、滚动、按下/释放    |
| 颜色操作 | 获取像素颜色、查找颜色位置                           |
| 键盘操作 | 输入文本、按键、组合键、快捷操作(复制/粘贴/全选等) |
| 图像识别 | 在屏幕上查找图片位置、等待图片出现/消失              |
| 对话框   | 警告、确认、输入对话框                               |
| 系统信息 | 屏幕分辨率、鼠标位置、窗口信息                       |
| 工具     | 等待、暂停                                           |

## 快速开始

### 基本使用模式

```bash
python scripts/automation.py <action> [参数...]
```

所有操作返回 JSON 格式结果。

**脚本位置**: [scripts/automation.py](scripts/automation.py)

## 操作详解

### 截图

```bash
# 全屏截图(自动生成文件名)
python scripts/automation.py screenshot

# 指定输出路径
python scripts/automation.py screenshot --output my_screenshot.png

# 区域截图
python scripts/automation.py screenshot --output region.png --region 100,100,400,300

# 截图到剪贴板(需要安装 pywin32)
python scripts/automation.py screenshot_to_clipboard
python scripts/automation.py screenshot_to_clipboard --region 100,100,400,300
```

### 鼠标点击

```bash
# 左键单击坐标 (100, 200)
python scripts/automation.py click --x 100 --y 200

# 右键双击
python scripts/automation.py click --x 100 --y 200 --button right --clicks 2

# 快捷双击
python scripts/automation.py double_click --x 100 --y 200
```

### 颜色操作

```bash
# 获取指定坐标的颜色
python scripts/automation.py get_pixel_color --x 100 --y 200
# 返回: {"rgb": [255, 255, 255], "hex": "#ffffff"}

# 查找颜色位置(精确匹配)
python scripts/automation.py find_color --rgb 255,255,255

# 查找颜色(带容差)
python scripts/automation.py find_color --rgb 255,255,255 --tolerance 10

# 在指定区域查找
python scripts/automation.py find_color --rgb 255,0,0 --region 0,0,800,600
```

### 鼠标控制

```bash
# 获取当前鼠标位置
python scripts/automation.py get_mouse_position

# 移动鼠标(瞬间)
python scripts/automation.py move_mouse --x 500 --y 300

# 移动鼠标(动画效果,0.5秒)
python scripts/automation.py move_mouse --x 500 --y 300 --duration 0.5

# 相对当前位置移动鼠标
python scripts/automation.py move_mouse_rel --x 100 --y -50
python scripts/automation.py move_mouse_rel --x 100 --y -50 --duration 0.5

# 拖拽鼠标
python scripts/automation.py drag_mouse --x 800 --y 600 --duration 1.0

# 鼠标按下(不释放)
python scripts/automation.py mouse_down --button left

# 鼠标释放
python scripts/automation.py mouse_up --button left

# 滚动(正数向上,负数向下)
python scripts/automation.py scroll --amount 500
python scripts/automation.py scroll --amount -500 --x 500 --y 300
```

### 屏幕信息

```bash
# 获取屏幕分辨率
python scripts/automation.py get_screen_size
# 返回: {"width": 1920, "height": 1080}

# 获取当前活动窗口信息(需要安装 pywin32)
python scripts/automation.py get_active_window
# 返回: {"title": "窗口标题", "left": 100, "top": 100, "width": 800, "height": 600}

# 获取所有可见窗口列表(需要安装 pywin32)
python scripts/automation.py get_all_windows
# 返回: {"count": 5, "windows": [...]}
```

### 等待

```bash
# 等待 2 秒
python scripts/automation.py sleep --seconds 2
```

### 键盘操作

```bash
# 输入文本
python scripts/automation.py type_text --text "Hello World"

# 输入文本(带间隔)
python scripts/automation.py type_text --text "Hello" --interval 0.1

# 按下按键
python scripts/automation.py press_key --key enter
python scripts/automation.py press_key --key esc

# 组合键
python scripts/automation.py hotkey --keys ctrl,c
python scripts/automation.py hotkey --keys ctrl,shift,esc

# 快捷操作
python scripts/automation.py copy      # Ctrl+C
python scripts/automation.py paste     # Ctrl+V
python scripts/automation.py cut       # Ctrl+X
python scripts/automation.py select_all # Ctrl+A
python scripts/automation.py undo      # Ctrl+Z
python scripts/automation.py redo      # Ctrl+Y
python scripts/automation.py save      # Ctrl+S
```

常用按键名称: `enter`, `esc`, `tab`, `space`, `backspace`, `delete`, `up`, `down`, `left`, `right`, `f1`-`f12`, `ctrl`, `alt`, `shift`, `win`

### 图像识别

需要安装 opencv-python 以使用 confidence 参数:

```bash
# 查找图片位置
python scripts/automation.py locate_on_screen --image button.png

# 使用置信度(需要 opencv-python)
python scripts/automation.py locate_on_screen --image button.png --confidence 0.9

# 在指定区域查找
python scripts/automation.py locate_on_screen --image button.png --region 0,0,800,600

# 查找所有匹配位置
python scripts/automation.py locate_all_on_screen --image icon.png

# 等待图片出现(最多等待10秒)
python scripts/automation.py wait_for_image --image button.png --timeout 10

# 等待图片出现(自定义检查间隔)
python scripts/automation.py wait_for_image --image loading.png --timeout 30 --wait_interval 1

# 等待图片消失
python scripts/automation.py wait_for_image_to_vanish --image loading.png --timeout 30
```

### 对话框

```bash
# 警告对话框
python scripts/automation.py alert --title "提示" --text "操作完成"

# 确认对话框
python scripts/automation.py confirm --title "确认" --text "是否继续?"

# 自定义按钮
python scripts/automation.py confirm --title "选择" --text "请选择操作" --buttons "保存,不保存,取消"

# 输入对话框
python scripts/automation.py prompt --title "输入" --text "请输入名称:" --default "默认值"
```

## 安全设置

脚本已启用以下安全保护:

- **FAILSAFE**: 将鼠标快速移动到屏幕左上角会触发异常停止
- **PAUSE**: 每个操作后有 0.1 秒默认暂停

## 完整示例

### 自动化登录流程

```bash
# 1. 截图记录初始状态
python scripts/automation.py screenshot --output login_start.png

# 2. 点击用户名输入框
python scripts/automation.py click --x 500 --y 300

# 3. 输入用户名
python scripts/automation.py type_text --text "myusername"

# 4. 按 Tab 切换到密码框
python scripts/automation.py press_key --key tab

# 5. 输入密码
python scripts/automation.py type_text --text "mypassword"

# 6. 点击登录按钮
python scripts/automation.py click --x 500 --y 400

# 7. 等待页面加载
python scripts/automation.py sleep --seconds 3

# 8. 截图记录结果
python scripts/automation.py screenshot --output login_end.png
```

### 颜色检测自动化

```bash
# 检测特定位置颜色并执行操作
color=$(python scripts/automation.py get_pixel_color --x 100 --y 100)
# 解析 JSON 判断颜色后执行相应操作
```

### 图像定位点击

```bash
# 查找按钮并点击
result=$(python scripts/automation.py locate_on_screen --image submit_button.png --confidence 0.9)
# 从结果中提取 center_x, center_y 并点击
```

## 依赖安装

脚本会自动安装必需的依赖:

- `pyautogui`: 核心自动化库
- `pillow`: 图像处理

可选依赖(用于图像识别置信度):

```bash
pip install opencv-python
```

## 资源索引

- [automation.py](scripts/automation.py) - 主入口脚本
- [utils.py](scripts/utils.py) - 公共工具函数
- [mouse.py](scripts/mouse.py) - 鼠标操作
- [keyboard.py](scripts/keyboard.py) - 键盘操作
- [screen.py](scripts/screen.py) - 截图和图像识别
- [color.py](scripts/color.py) - 颜色检测
- [dialog.py](scripts/dialog.py) - 对话框操作
- [system.py](scripts/system.py) - 系统信息

## 注意事项

1. **坐标系**: 屏幕左上角为原点 (0, 0),向右为 X 增加,向下为 Y 增加
2. **权限**: Windows 上可能需要以管理员权限运行某些操作
3. **分辨率**: 多显示器环境下,坐标可能跨越多个屏幕
4. **图像识别**: 受屏幕分辨率和缩放比例影响,建议使用 confidence 参数提高鲁棒性

## 快速参考表

| 用户输入 | AI 行动      |
| -------- | ------------ |
| "xxx"    | 直接执行 xxx |

Source

Creator's repository · steelan9199/wechat-publisher

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk