# OnClipboardChange

注册一个每当剪贴板内容发生改变时, 回自动调用的函数.

    OnClipboardChange Callback , AddRemove

## 参数

Callback

  类型: 函数对象

  要调用的函数.

  回调函数接受一个参数, 可以定义如下:

      MyCallback(DataType) { ...

  虽然你给参数的名称并不重要, 但是它会被赋值为下面的数字之一:

  - 0 = 剪贴板当前为空.
  - 1 = 剪贴板包含可以用文本形式表示的内容(包括从资源管理器窗口复制的文件).
  - 2 = 剪贴板包含完全是非文本的内容, 例如图片.

  如果不需要相应的信息, 可以省略回调的参数, 但在这种情况下必须指定星号, 例如 `MyCallback(*)`.

  如果这是最近的或仅有的回调, 其返回值会被忽略. 否则, 此回调会返回一个非零整数来阻止随后的回调被调用.

AddRemove

  类型: 整数

  如果未设置或省略, 则默认为 1(在任何先前的注册回调之后调用该回调). 否则, 指定下列数字之一:

  - 1 = 在任何先前的注册回调之后调用该回调.
  - -1 = 在任何先前的注册回调之前调用该回调.
  - 0 = 不调用该回调.

## 备注

如果剪贴板在回调已经运行时发生更改, 则剪贴板通知事件会丢失. 如果不希望这样, 请使用 Critical. 不过, 这样做也会缓冲/延迟 OnClipboardChange 线程运行时发生的其他线程(例如按下热键).

如果是脚本本身改变了剪贴板内容, 脚本中的回调或标签通常不会立即执行; 也就是说紧接在改变剪贴板语句后面的语句就像提前运行了一样. 要强制立即执行这个回调, 请在改变剪贴板内容后使用短暂的延迟, 例如 `Sleep 20`.

## 相关

A_Clipboard, OnExit, OnMessage, CallbackCreate

## 示例

在每次剪贴板更改时简要显示工具提示.

    OnClipboardChange ClipChanged

    ClipChanged(DataType) {
        ToolTip "剪贴板数据类型: " DataType
        Sleep 1000
        ToolTip  ; 关闭工具提示.
    }

dftg