名称: windows-control
描述: 完整的 Windows 桌面控制。鼠标、键盘、截图——像真人一样与任何 Windows 应用程序交互。
完整的 Windows 桌面自动化。像真人用户一样控制鼠标、键盘和屏幕。
所有脚本位于 skills/windows-control/scripts/ 目录下。
py screenshot.py > output.b64
返回整个屏幕的 base64 PNG 图像。
py click.py 500 300 # 在坐标 (500, 300) 处左键单击
py click.py 500 300 right # 右键单击
py click.py 500 300 left 2 # 双击
py type_text.py "Hello World"
在当前光标位置输入文本(按键间隔 10 毫秒)。
py key_press.py "enter"
py key_press.py "ctrl+s"
py key_press.py "alt+tab"
py key_press.py "ctrl+shift+esc"
py mouse_move.py 500 300
将鼠标平滑移动到指定坐标(动画时长 0.2 秒)。
py scroll.py up 5 # 向上滚动 5 个单位
py scroll.py down 10 # 向下滚动 10 个单位
py focus_window.py "Chrome" # 将窗口置于前台
py minimize_window.py "Notepad" # 最小化窗口
py maximize_window.py "VS Code" # 最大化窗口
py close_window.py "Calculator" # 关闭窗口
py get_active_window.py # 获取活动窗口标题
# 按文本点击(无需坐标!)
py click_text.py "Save" # 点击任意位置的“保存”按钮
py click_text.py "Submit" "Chrome" # 仅在 Chrome 中点击“提交”
# 拖放
py drag.py 100 100 500 300 # 从 (100,100) 拖拽到 (500,300)
# 稳健的自动化(等待/查找)
py wait_for_text.py "Ready" "App" 30 # 等待文本出现,最多 30 秒
py wait_for_window.py "Notepad" 10 # 等待窗口出现
py find_text.py "Login" "Chrome" # 获取文本的坐标
py list_windows.py # 列出所有打开的窗口
py read_window.py "Notepad" # 读取记事本中的所有文本
py read_window.py "Visual Studio" # 读取 VS Code 中的文本
py read_window.py "Chrome" # 读取浏览器中的文本
使用 Windows UI 自动化提取实际文本(非 OCR)。比截图更快、更准确!
py read_ui_elements.py "Chrome" # 所有交互元素
py read_ui_elements.py "Chrome" --buttons-only # 仅按钮
py read_ui_elements.py "Chrome" --links-only # 仅链接
py read_ui_elements.py "Chrome" --json # JSON 格式输出
返回按钮、链接、选项卡、复选框、下拉菜单及其点击坐标。
py read_webpage.py # 读取活动浏览器
py read_webpage.py "Chrome" # 指定 Chrome 浏览器
py read_webpage.py "Chrome" --buttons # 包含按钮
py read_webpage.py "Chrome" --links # 包含带坐标的链接
py read_webpage.py "Chrome" --full # 所有元素(输入框、图片等)
py read_webpage.py "Chrome" --json # JSON 格式输出
增强的浏览器内容提取,包括标题、文本、按钮和链接。
# 列出所有打开的对话框
py handle_dialog.py list
# 读取当前对话框内容
py handle_dialog.py read
py handle_dialog.py read --json
# 点击对话框中的按钮
py handle_dialog.py click "OK"
py handle_dialog.py click "Save"
py handle_dialog.py click "Yes"
# 在对话框文本框中输入
py handle_dialog.py type "myfile.txt"
py handle_dialog.py type "C:\path\to\file" --field 0
# 关闭对话框(自动查找确定/关闭/取消按钮)
py handle_dialog.py dismiss
# 等待对话框出现
py handle_dialog.py wait --timeout 10
py handle_dialog.py wait "Save As" --timeout 5
处理保存/打开对话框、消息框、警报、确认框等。
py click_element.py "Save" # 点击任意位置的“保存”
py click_element.py "OK" --window "Notepad" # 在指定窗口中点击
py click_element.py "Submit" --type Button # 仅点击按钮
py click_element.py "File" --type MenuItem # 菜单项
py click_element.py --list # 列出可点击元素
py click_element.py --list --window "Chrome" # 列出指定窗口中的元素
按名称点击按钮、链接、菜单项,无需坐标。
py read_region.py 100 100 500 300 # 读取指定坐标区域的文本
注意:需要安装 Tesseract OCR。建议优先使用 read_window.py 以获得更好效果。
# 按下 Windows 键
py key_press.py "win"
# 输入“notepad”
py type_text.py "notepad"
# 按下 Enter
py key_press.py "enter"
# 稍等片刻,然后输入
py type_text.py "Hello from AI!"
# 保存
py key_press.py "ctrl+s"
# 读取当前 VS Code 内容
py read_window.py "Visual Studio Code"
# 在特定位置点击(例如,文件资源管理器)
py click.py 50 100
# 输入文件名
py type_text.py "test.js"
# 按下 Enter
py key_press.py "enter"
# 验证新文件已打开
py read_window.py "Visual Studio Code"
# 读取当前内容
py read_window.py "Notepad"
# 用户输入内容...
# 读取更新后的内容(无需截图!)
py read_window.py "Notepad"
方法 1:Windows UI 自动化(最佳)
- 使用 read_window.py 读取任何窗口
- 使用 read_ui_elements.py 获取带坐标的按钮/链接
- 使用 read_webpage.py 获取带结构的浏览器内容
- 获取实际文本数据(非基于图像)
方法 2:按名称点击(新功能)
- 使用 click_element.py 按名称点击按钮/链接
- 无需坐标 - 自动查找元素
- 适用于所有窗口或指定目标窗口
方法 3:对话框处理(新功能)
- 使用 handle_dialog.py 处理弹窗、保存对话框、警报
- 读取对话框内容、点击按钮、输入文本
- 使用常见按钮(确定、取消等)自动关闭
方法 4:截图 + 视觉识别(备用方案)
- 截取全屏
- AI 视觉读取文本
- 较慢,但适用于任何内容
方法 5:OCR(可选)
- 使用 read_region.py 配合 Tesseract
- 需要额外安装
- 适用于含文本的图像/PDF
pyautogui.FAILSAFE = True(将鼠标移至左上角可中止)ctrl+z 撤销的操作状态: ✅ 准备就绪 (v2.0 - 对话框与 UI 元素)
创建日期: 2026-02-01
更新日期: 2026-02-02