ClipWait

等待直到剪贴板包含数据.

ClipWait Timeout, WaitFor

参数

Timeout

类型: 整数浮点数

如果省略, 此命令将无限期等待. 否则, 它将等待不超过这个秒数的时间. 若要等待比秒更小的时间, 请指定一个浮点数, 例如, 0.25 等待最多 250 毫秒.

WaitFor

类型: 整数

如果省略, 则默认为 0(仅等待文本或文件). 否则, 请指定以下数字之一以表示要等待的内容:

0: 函数更具选择性, 明确地等待剪贴板中出现文本或文件("文本" 包含当您粘贴到记事本时会产生文本的任何内容).

1: 函数等待剪贴板中出现任何类型的数据.

其他值保留以供将来使用.

返回值

类型: 整数(布尔值)

如果函数超时, 返回 0(false), 否则(即剪贴板包含数据), 返回 1(true).

备注

使用此函数比您在一个循环中检查剪贴板是否为空要好. 这是由于此函数从不打开剪贴板, 因此执行地更好并且避免了对可能使用剪贴板的其他程序的干扰.

此函数把任何可转换成文本的内容(例如 HTML) 视为文本. 它也把文件( 例如从资源管理器窗口中通过 Ctrl+C 复制的文件) 视为文本. 每当在脚本中引用 Clipboard 变量时, 这些文件被自动转换成它们的文件名(完整路径). 有关详情, 请参阅 A_Clipboard.

当最后一个参数为 1 时, 剪贴板中出现任何数据, 就会满足函数的条件. 这种特性可以和 ClipboardAll 结合使用来保存像图片这样的非文本数据.

当函数处于等待状态时, 可以通过热键, 自定义菜单项计时器启动新的线程.

A_Clipboard, WinWait, KeyWait

示例

清空剪贴板, 将当前选区复制到剪贴板, 最多等待 2 秒, 直到剪贴板包含数据. 如果 ClipWait 超时, 将显示错误信息, 否则将显示剪贴板内容.

A_Clipboard := "" ; 清空剪贴板
Send "^c"
if !ClipWait(2)
{
    MsgBox "The attempt to copy text onto the clipboard failed."
    return
}
MsgBox "clipboard = " A_Clipboard
return