GUI 文本化 · AI 友好的 Windows 桌面自动化工具
基于 FlaUI/UIA3,将界面控件文本化为结构化 JSON;支持标签点击、坐标/后台点击、输入、按键、
VMA 脚本、截图(全屏/区域)、HTTP API 与 stdio 服务(serve)。
- 从 GitHub Releases 下载最新版本
- 解压到任意目录
- 运行
Vimina.exe
- 操作系统:Windows 10 / 11
- 运行时:
- 小体积版(~3 MB):需安装 .NET 8 Desktop Runtime
- 自包含版(~180 MB):无需任何依赖,解压即用
| 快捷键 | 功能 |
|---|---|
Alt + F |
显示/隐藏控件标签 |
Alt + R |
刷新标签 |
Esc |
清除所有标签 |
A-Z |
输入标签字母点击控件 |
Backspace |
删除已输入字符 |
操作流程:聚焦目标窗口 → 按 Alt+F 显示标签 → 输入标签上的字母(如 DJ)→ 自动点击对应控件。
Vimina.exe run ./demo.vma # 执行脚本
Vimina.exe ./demo.vma # 可省略 run 关键字
Vimina.exe help # 查看命令行用法脚本执行结果与日志输出到控制台,执行完成后进程退出。
Vimina.exe serve行分隔 JSON-RPC:标准输入一行 {"id","method","params"} 请求 → 标准输出一行
{"id","ok","result","error"} 响应。完整方法列表由 info 方法返回。
# 扫描窗口
curl http://localhost:51401/api/scan
# 点击标签
curl -X POST http://localhost:51401/api/click -d '{"label":"DJ"}'
# 坐标点击
curl http://localhost:51401/api/click/500/300
# 后台点击(不移动鼠标)
curl "http://localhost:51401/api/click/500/300?useBackend=1"
# 截图:默认全屏;传 x/y/w/h 只截区域
curl "http://localhost:51401/api/screenshot?filename=shot.png&x=100&y=200&w=400&h=300"程序根目录,首次运行自动生成;修改后重启生效。参考模板 config.yaml.example。
backgroundColorDefault: "0xFFAE04" # 标签默认底色
fontSize: 12
apiPort: 51401 # API 端口(仅监听本机)
apiToken: "" # 留空 = 不鉴权activate("记事本")
scan()
clickLabel("A")
input("Hello World")
keyPress("Ctrl+S")
screenshot("shot.png", 100, 200, 400, 300) // 区域截图;不带 x/y/w/h 为全屏
import requests
# 扫描窗口,获取结构化数据
result = requests.get("http://localhost:51401/api/scanAll").json()
# AI 分析界面内容,决策后执行
requests.post("http://localhost:51401/api/click", json={"label": "A"})
requests.post("http://localhost:51401/api/input", json={"text": "Hello"})接口返回全部为结构化 JSON,AI 无需视觉模型即可理解并操作界面。 DeepSeek Harness 插件见 dsh-vimina。