SetWinDelay

设置在每次执行窗口函数(例如 WinActivate) 后的延时.

SetWinDelay Delay

参数

Delay

类型: 整数

时间, 以毫秒为单位. 指定 -1 表示无延时, 或 0 表示最小延时.

返回值

整数: 整数

函数返回以前的设置.

备注

如果没有使用 SetWinDelay, 默认延时为 100.

除了 WinActiveWinExist 之外, 在每个窗口函数之后都会自动执行短暂的延迟(睡眠). 这样做是为了提高脚本的可靠性, 因为窗口在创建, 激活或最小化等操作之后有时需要一段 "休息" 时间, 以便它有机会更新自身, 并响应下一个脚本可能尝试发送给它的函数.

虽然允许使用 -1(完全无延时), 但建议至少使用 0, 以增强即使在 CPU 处于负载状态下脚本也能正确运行的几率.

延时为 0 时实际内部会执行 Sleep(0), 这会将脚本时间片段的剩余部分提供给可能需要它的任何其他进程. 如果没有其他进程需要, 则 Sleep(0) 相当于完全没有延时.

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

内置变量 A_WinDelay 包含当前设置.

每个新运行的线程(如 热键, 自定义菜单项定时子程序) 都会以此函数的默认设置开始. 这个默认设置可以通过在脚本启动中使用此函数来改变.

SetControlDelay, SetKeyDelay, SetMouseDelay, SendMode

示例

在每次窗口函数后, 有 10 毫秒的延迟.

SetWinDelay 10