创建一个包含剪贴板上的所有内容的对象(如图片和格式).
ClipSaved := ClipboardAll(Data, Size)
ClipboardAll
本身是一个派生自 Buffer
的类.
省略这两个参数来检索剪贴板的当前内容. 否则, 指定一个或两个参数来创建包含给定二进制剪贴板数据的对象.
类缓冲对象, 或为二进制数据地址的纯整数. 数据必须采用特定的格式, 因此通常源自之前对 ClipboardAll 的调用. 请参阅下面的示例 #2.
类型: 整数
数据要使用的字节数. 当 Data 是对象时, 这是可选的.
类型: 对象
函数返回 ClipboardAll 对象的引用 , 它有两个属性(继承自 Buffer):
内置变量 A_Clipboard 包含以纯文本形式表示的 Windows 剪贴板的当前内容.
ClipboardAll 函数最常用来保存剪贴板的内容, 以便脚本可以临时使用剪贴板进行操作. 当操作完成时, 脚本恢复原来的剪贴板内容, 如示例 #1 和示例 #2 所示.
如果 ClipboardAll 不能检索剪贴板上的一个或多个数据对象(格式), 它们将被省略, 但所有剩余的对象将被存储.
ClipWait 可用于检测剪贴板何时包含数据(可选包括非文本数据).
对象所包含的二进制数据由 4 字节格式类型, 接着 4 字节数据块大小, 而后是该格式的数据块组成. 如果剪贴板包含不止一种格式(几乎总是这样), 则重复这三项, 直到包含所有格式为止. 数据以 4 字节格式类型的 0 结束.
已知限制: 当 Microsoft Excel 的单元格被复制到剪贴板时, 使用 ClipboardAll 可能会导致 Excel 弹出 "找不到打印机" 的对话框.
A_Clipboard, ClipWait, OnClipboardChange, #ClipboardTimeout, Buffer
ClipSaved := ClipboardAll() ; 把整个剪贴板保存到您选择的变量中. ; ... 这里临时使用剪贴板, 比如快速粘贴大量文本 ... A_Clipboard := ClipSaved ; 还原剪贴板. 注意这里使用 A_Clipboard(而不是 ClipboardAll). ClipSaved := "" ; 在剪贴板含有大量内容时释放内存.
; 选项 1: 删除任何现有文件, 然后使用 FileAppend. FileDelete "C:\Company Logo.clip" FileAppend ClipboardAll(), "Company Logo.clip" ; 文件扩展名无关紧要. ; 选项 2: 使用 FileOpen 的 overwrite 模式和 File.RawWrite. ClipData := ClipboardAll() FileOpen("Company Logo.clip", "w").RawWrite(ClipData)
要稍后将文件加载回剪贴板(或变量), 请遵循以下示例:
ClipData := FileRead("Company Logo.clip", "RAW") ; 在这种情况下, FileRead 返回缓冲. A_Clipboard := ClipboardAll(ClipData) ; 将缓冲转换到 ClipboardAll 并赋值.