跳转至

title: 目标描述 description: GhostClickAI 全软件统一的目标描述写法:window:、screen:、android:、process: 前缀、key=value 条件、转义与输出即输入。


目标描述

「目标」是告诉节点“在哪个窗口、哪块屏幕、哪个安卓实例上操作”的一行字符串,例如 window:title=网易云音乐、android:type=gc9,number=1。这一行描述目标的文字就叫「目标描述」,本页讲清它的统一写法规则。

宏节点的执行域、目标点击的输入目标、截图、查找窗口、关闭窗口、gpy 的 capture 和 input 系列,输入和输出的都是目标描述。学会这一页,软件里绝大多数输入框你就都会填了。

一句话语法

目标描述是 前缀:内容:

  • 前缀管大类:window:(窗口)、screen:(屏幕)、android:(安卓实例)、process:(进程)。
  • 内容是裸词简写,或者 key=value 条件用英文逗号组合,没有终止符,写到结尾就是结束。
  • 值里面如果本身含有 ,、=、\,在前面加一个反斜杠转义,例如 window:title=标题\,续。
window:记事本                              ← 裸词简写:按标题找窗口
window:title=记事本                        ← 等价的完整写法
window:process=cloudmusic.exe,title=网易云  ← 两个条件同时满足(AND)
screen:primary                            ← 主屏
android:gc9                               ← 裸词简写:幽点安卓9
android:type=gc9,number=1                 ← 等价的完整写法
android:adb=127.0.0.1:5555                ← 按 ADB 地址

输出即输入:节点输出的目标描述(例如“打开”节点吐出的 window:handle=123456、拉起安卓实例吐出的整串 android:type=...,id=...)可以原样连回任何接受目标的输入口,不需要手工拆解或改写。解析器只取自己认识的键用来定位,文档化的信息键(名称、分辨率等)会被忽略,写了不认识的键才会按错别字报错。

window: 窗口

写法 含义
window:网易云音乐 裸词 = 标题简写,按标题查找(包含匹配、不区分大小写)
window:title=网易云 标题条件,与裸词等价
window:process=cloudmusic.exe 进程条件,按进程映像名精确匹配,.exe 可以省略
window:handle=123456 句柄条件,十进制或 0x 十六进制
window:123456、window:0x1A2B 纯数字或 0x 开头的裸词 = 句柄简写
window:process=cloudmusic.exe,title=网易云 多个条件逗号组合,必须同时满足

规则要点:

  • title=、process= 等条件可以组合;handle= 是窗口身份,不能再与其他条件组合。
  • 同一个条件写两次、不认识的键、空的 key= 值,都会被直接拒绝并报错,软件不会替你猜。
  • 找到多个符合条件的窗口时,按各节点自己的规则处理(查找窗口取前台优先,关闭窗口全部关闭)。
  • 窗口裁切(只操作窗口的一部分)不写进目标描述,它是宏节点录制时单独保存的 windowCrop 设置。

screen: 屏幕

写法 含义
screen: 或 screen:primary 主屏
screen:2 尾号序号,只匹配 DISPLAY2,不会错配 DISPLAY12
screen:id=\\.\DISPLAY2 按显示器 ID 精确匹配(大小写不敏感)

只写名称时会按唯一包含匹配;匹配到多块屏会报歧义错误,找不到就返回空,不会悄悄替你选第一块屏。

android: 安卓实例

写法 含义
android:gc9 类型简写,等同 android:type=gc9
android:gc9#1、android:type=gc9,number=1 用 #编号 或 number= 指定同类型的第几个
android:name=回廊机 按实例名称继续收窄
android:id=gcai-... 按稳定实例 ID
android:path=实例路径 按实例目录,类型自动识别
android:adb=127.0.0.1:5555 按 ADB 地址(也认 emulator-5554 形态)
android:幽点安卓9 中文类型名同样可以识别

类型别名:自有实例 gc9(幽点安卓9)、gc14(幽点安卓14),第三方 ld9、ld14(雷电)、mumu12、mumu15、nox。多条件命中多个实例时按编号升序取第一个。

“拉起安卓实例”“查找运行中安卓实例”输出的完整实例信息长这样:

android:type=gc9,id=gcai-...,name=回廊机,adb=127.0.0.1:6101,route=ghostclick-instance:gcai-...,status=ok

这整串就是标准的目标描述,原样连给截图、宏、目标点击或实例控制节点即可,不要手工拆出裸 ADB 地址再拼接——裸地址不包含宿主实例身份,隐藏/显示/关闭实例等操作会拒绝。旧蓝图里 android:{json} 形式的实例串仍能被读取。

process: 进程

process:进程名 表示按进程定位,目前主要用于需要进程目标的节点(例如关闭进程)。进程名不区分大小写、.exe 可省,会命中所有同名进程。

空目标与连线优先

  • 接受目标的端口连线时以连线给的目标为准,节点上手工填写的内容只在未连线时生效;连线后字段会显示“由连接提供”。
  • 宏节点的执行域留空 = 在桌面上执行;目标点击等自动化输入节点留空同样表示 PC 桌面。
  • 少数节点对空目标有自己的安全约定:关闭窗口在空目标或只写 window: 时不关闭任何窗口,直接输出 false 继续。
  • 显式写出的目标不存在或不唯一时会报错,不会自动换成主屏或别的窗口。

哪里会用到目标描述

位置 说明
宏节点的执行域 指定整段宏在哪个目标上执行,留空为桌面
目标点击、两点拖拽、输入文本 输入目标端口
截图、多状态 UI 识别 目标字符串端口
查找窗口、关闭窗口与关闭进程 查询 / 目标端口
gpy 的 capture、input.click/swipe/key/text 第一个参数就是目标描述

常见错误

  • 把 window: 写成 win: 或 windows::前缀只认文档列出的几种;不认识的前缀不会回退成窗口猜测。
  • 手工拼裸 ADB 地址当安卓目标:请直接连接实例信息整串;手动连接只有地址、没有宿主身份。
  • 在标题里直接写英文逗号:逗号是条件分隔符,标题本身含逗号要写成 window:title=标题\,续。
  • handle= 再叠加标题条件:句柄已经是唯一身份,组合会被拒绝。