# A_Clipboard

A_Clipboard 是一个内置变量, 它包含当前 Windows 剪贴板中可以用文本形式表示的内容.

A_Clipboard 中的每行文本通常都是以回车和换行符(CR+LF) 结尾, 它们在脚本中表示为 ``r`n`. 文件(例如从资源管理器窗口中使用 `Ctrl`+`C` 复制的文件) 被视为文本: 每当在脚本中引用 A_Clipboard 时, 它们会被自动转换为它们的文件名(完整路径). 要逐个提取这些文件, 请参照此例:

    Loop Parse A_Clipboard, "`n", "`r"
    {
        Result := MsgBox("File number " A_Index " is " A_LoopField ".`n`nContinue?",, 4)
        if Result = "No"
            break
    }

要按字母顺序排列文件名, 请使用 Sort 函数. 要把剪贴板中的文件名写入到文件中, 请使用 `FileAppend A_Clipboard "`r`n", "C:\My File.txt"`. 要改变脚本持续尝试打开剪贴板的时间 -- 例如另一个程序在使用剪贴板的时候 -- 请使用 #ClipboardTimeout.

ClipWait 可用于检测剪贴板何时包含数据(可选包括非文本数据):

    A_Clipboard := ""  ; 先让剪贴板为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.
    Send "^c"
    ClipWait  ; 等待剪贴板中出现文本.
    MsgBox "Control-C copied the following contents to the clipboard:`n`n" A_Clipboard

## 相关

- ClipboardAll: 用于操作剪贴板上的所有内容(如图片和格式).
- OnClipboardChange: 用于检测和响应剪贴板更改.

## 示例

赋予剪贴板全新的内容.

    A_Clipboard := "my text"

清空剪贴板.

    A_Clipboard := ""

将任何复制的文件, HTML 或其他格式的文本转换为纯文本.

    A_Clipboard := A_Clipboard

追加一些文本到剪贴板.

    A_Clipboard .= " Text to append."

把剪贴板中所有 ABC 替换为 DEF(同时把剪贴板的内容转换为纯文本).

    A_Clipboard := StrReplace(A_Clipboard, "ABC", "DEF")

使用 AutoHotkey v1 编写的剪贴板实用工具:

- Deluxe Clipboard: 提供不限数量的私有的命名的剪贴板, 可以用来复制, 剪切, 追加或剪切追加选中的文本.
- ClipStep: 仅使用键盘上的 `Ctrl`-`X`-`C`-`V` 控制多个剪贴板.

dftg