# ClipWait

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

    ClipWait , Timeout, WaitForAnyData

## 参数

Timeout

  如果省略, 此命令将无限期等待. 否则, 它将等待不超过这个秒数的时间(可以包含小数点或为表达式). 指定 0 等同于指定 0.5.

WaitForAnyData

  如果此参数省略或为 0(false), 此命令会更有选择性, 明确地等待剪贴板中出现文本或文件("文本" 包含任何当您粘贴到记事本时会产生文本的内容). 如果此参数为 1(true)(可以为表达式), 此命令会等待剪贴板中出现任何类型的数据.

## ErrorLevel

如果到达等待期限, ErrorLevel 将被置为 1. 否则(即剪贴板包含数据), ErrorLevel 被置为 0.

## 备注

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

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

当最后一个参数为 1(true) 时, 剪贴板中出现任何数据都将符合此命令. 这种特性可以和 ClipboardAll 结合使用来保存像图片这样的非文本数据.

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

第一个参数可以是浮点值, 例如, 0.25 等待最多 250 毫秒.

## 相关

Clipboard, WinWait, KeyWait

## 示例

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

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

dftg