OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  windows-control: 完整的 Windows 桌面环境自动化控制

windows-control: 完整的 Windows 桌面环境自动化控制

 
  fullstack ·  2026-02-02 19:05:50 · 3 次点击  · 0 条评论  

名称: windows-control
描述: 完整的 Windows 桌面控制。鼠标、键盘、截图——像真人一样与任何 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)。比截图更快、更准确!

读取 UI 元素(新功能!)

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"  # 列出指定窗口中的元素

按名称点击按钮、链接、菜单项,无需坐标。

读取屏幕区域(OCR - 可选)

py read_region.py 100 100 500 300     # 读取指定坐标区域的文本

注意:需要安装 Tesseract OCR。建议优先使用 read_window.py 以获得更好效果。

工作流程模式

  1. 读取窗口 - 从特定窗口提取文本(快速、准确)
  2. 读取 UI 元素 - 获取带坐标的按钮、链接
  3. 截图(如需要)- 查看视觉布局
  4. 执行操作 - 按名称或坐标点击元素
  5. 处理对话框 - 与弹窗/保存对话框交互
  6. 读取窗口 - 验证更改

屏幕坐标

  • 原点 (0, 0) 位于屏幕左上角
  • 您的屏幕分辨率:2560x1440(可通过截图确认)
  • 使用截图分析得出的坐标

示例

打开记事本并输入

# 按下 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 中点击

# 读取当前 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(将鼠标移至左上角可中止)
  • 操作间有短暂延迟
  • 平滑的鼠标移动(非瞬间跳转)

要求

  • Python 3.11+
  • pyautogui(已安装 ✅)
  • pillow(已安装 ✅)

提示

  • 始终先截图以查看当前状态
  • 坐标是绝对坐标(非相对于窗口)
  • 点击后稍等片刻,让 UI 更新
  • 尽可能使用支持 ctrl+z 撤销的操作

状态: ✅ 准备就绪 (v2.0 - 对话框与 UI 元素)
创建日期: 2026-02-01
更新日期: 2026-02-02

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor