条件匹配与坐标区域
作用域决定“哪个软件”,条件进一步决定“什么情况”。条件写在命令名后的 & 部分;同一条规则中的条件都满足才执行。
ini
[last_r+r&max]
type=f
code='''
MsgBox("本条规则要求窗口处于最大化状态。")
'''&max 是布尔式条件。&字段=值 比较内容,例如 &pc_name=my_pc。每个名字有自己的含义,不是任意表达式;未知名字只有在信息提供方写入同名字段后才可能命中。
位置条件
| 条件族 | 用途 |
|---|---|
d |
按下位置的屏幕分区 |
a |
按下位置的窗口分区 |
u |
释放位置的屏幕分区 |
t |
释放位置的窗口分区 |
w1、h1 |
窗口宽、高分别除以 100 后的整数值 |
dx>、dy< 等 |
位置的数值比较,操作符写在条件名中 |
常见区域为 c1~c4(左上、右上、左下、右下四角)、l1~l3(左侧)、r1~r3(右侧)、u1~u3(上侧)、d1~d3(下侧)和 b(内部区域)。区域判定还受屏幕、窗口边缘阈值影响;首次使用应以记录中的位置字段核对。
例如把一条手势限制在屏幕左上角:
ini
[last_r+r&d=c1]
type=f
code='''
Run("notepad.exe")
'''绝对坐标在多显示器下可以为负。用数值条件时,确认是屏幕坐标、窗口相对坐标还是控件区域。
常见内容条件
&max、&full、&top:窗口状态。&pc_name=...:归一化后的计算机名。&acv=...、&acn=...:可访问性 value、name。&url=...、&href_pt=...、&ui_id=...:需要对应的软件附加信息。&last_up=...、&last_dn=...、&last_gn=...:上次命令或手势。
字符串的大小写和归一化由具体字段来源决定,复制记录中的匹配值最可靠。不要把 &url 当成所有浏览器都必定提供的数据。
匹配优先级
同一基础命令可以有多个条件变体。内部根据条件注册顺序和排序键检查,不按文件里“写在上面”来决定。无条件版本通常充当兜底,但两条有交集的条件规则不应靠猜测决定先后。
一次只加一个条件,确认命中后再组合。需要更多网页或控件内容时,继续读 附加信息。