条件与位置
Diatom/用户手册/条件与位置

条件匹配与坐标区域

作用域决定“哪个软件”,条件进一步决定“什么情况”。条件写在命令名后的 & 部分;同一条规则中的条件都满足才执行。

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 当成所有浏览器都必定提供的数据。

匹配优先级

同一基础命令可以有多个条件变体。内部根据条件注册顺序和排序键检查,不按文件里“写在上面”来决定。无条件版本通常充当兜底,但两条有交集的条件规则不应靠猜测决定先后。

一次只加一个条件,确认命中后再组合。需要更多网页或控件内容时,继续读 附加信息。

用户手册

正在读取手册…