SetControlDelay

设置在每次控件修改命令执行后自动的延时.

SetControlDelay, Delay

参数

Delay

毫秒表示的时间, 可以为表达式. 指定 -1 表示无延时, 或者 0 表示最小延时.

备注

如果没有使用 SetControlDelay, 默认的延时为 20.

在每次控件改变命令执行后, 都会自动进行短暂的延时(休眠), 这些命令包括 Control, ControlMove, ControlClick, ControlFocusControlSetText(ControlSend 例外, 它使用 SetKeyDelay). 这样做提高了脚本的可靠性, 因为有时控件在被这里的其中一个命令改变后需要一个 "休息" 期, 以便控件有机会更新自身, 并响应脚本可能试图发送给它的下一个命令.

虽然允许使用 -1(无延时), 但是推荐至少使用 0, 这样增加了 CPU 高负荷时脚本正确运行的几率.

延时为 0 时实际内部会执行 Sleep(0), 这样会将脚本时间片的剩余部分分配给其他需要的进程. 如果没有进程需要, 那么 Sleep(0) 相当于完全没有延时.

如果 CPU 比较慢或在负载下或启用的窗口动画, 那么可能需要较高的延迟值.

内置变量 A_ControlDelay 包含了当前的设置.

每个新运行的线程(例如 热键, 自定义菜单项定时子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段(脚本的顶部) 使用此命令可以改变这个默认设置.

Control, ControlMove, ControlClick, ControlFocus, ControlSetText, SetWinDelay, SetKeyDelay, SetMouseDelay, SetBatchLines

示例

在每次控件修改命令后产生尽可能小的延迟.

SetControlDelay, 0