# ClipWait

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

    ClipWait Timeout, WaitForAnyData

## 参数

Timeout

  类型: 整数

  如果省略, 此命令将无限期等待. 否则, 它将等待不超过这个秒数的时间(可以包含小数点).

WaitForAnyData

  类型: 整数(布尔值)

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

## 返回值

类型: 整数(布尔值)

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

## 备注

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

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

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

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

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

## 相关

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

dftg